강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

김재현님의 프로필 이미지
김재현

작성한 질문수

스프링 핵심 원리 - 기본편

애노테이션 @PostConstruct, @PreDestroy

컴포넌트스캔 이용하여 빈생성시 기본설정을 언제 해야하는지 궁금합니다.

작성

·

354

0

 

public NetworkClient networkClient() {
NetworkClient networkClient = new NetworkClient();
networkClient.setUrl("http://hello-spring.dev");
return networkClient;
}

@Bean 을 이용해서 빈생성을 하면

setUrl() 을 통해서 url을 설정 후 생성이 되는걸로 이해 했습니다.

그러면 컴포넌트 스캔을 이용해서 빈생성을 하면 setUrl을 @PostConstruct를 이용하여 해주는게 맞는거인가요 아니면 생성자를 따로 둬야하는지 궁금합니다!

 

퀴즈

스프링 빈 생명주기에서 객체 생성과 초기화 단계를 분리하는 주된 이유는 무엇일까요?

메모리 할당 속도 향상

의존성 주입 완료 시점 문제 해결

생성자 오버로딩 지원

가비지 컬렉션 효율 증대

답변 1

0

안녕하세요. 김재현님, 공식 서포터즈 David입니다.

빈 생성 후 별도의 초기화 작업을 하시려면 PostConstruct를 이용하시면 됩니다.

그게 아니라면 빈을 생성할 때 생성자의 파라미터로 url을 넘겨주시거나 생성한 이후 별도의 메서드를 호출하여 상태를 변경하셔야 합니다.

감사합니다.

김재현님의 프로필 이미지
김재현

작성한 질문수

질문하기