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

jaho321님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 기본편

빈 생명주기 콜백 시작

setUrl 이 null인 이유

작성

·

287

0

안녕하세요 

이 코드에서 networkClient url이 null인 이유가

@Configuration
static class LifeCycleConfig{

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

빈 라이프 사이클에 의해 스프링 빈을 등록하는 과정에서

1. 객체를 생성

2. 의존관계 주입

1번과 2번 과정 중간에 setUrl이 호출되는 바람에 

setUrl 코드가 누락(?) 됐다고 보는게 맞는건가요?

 

답변 1

1

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

NetworkClient 빈을 생성하기 위해 networkClient()을 실행합니다.

이때 NetworkClient 생성자를 호출할 때 내부에서 url을 print하는데, setUrl이 되기 전이라 null로 값이 찍힙니다.

빈의 라이프싸이클과는 무관합니다.

감사합니다.

jaho321님의 프로필 이미지
jaho321
질문자

답변 감사합니다

이후 강의를 보고 왔는데 

빈 라이프 사이클은

객체 생성시 하지 못한 작업을

초기화 콜백을 이용하여 추가적인 작업을 하기 위한 용도로 이해 했는데 맞을까요?  

빈의 라이프사이클은 빈의 생성부터 소멸까지의 과정을 말하는 것이지

'객체 생성시 하지 못한 작업을 초기화 콜백을 이용하여 추가적인 작업을 하기 위한 용도'만을 위한 것은 아닙니다.

jaho321님의 프로필 이미지
jaho321
질문자

빈 라이프 사이클은 말 그대로

'빈의 생성부터 소멸까지의 과정'

그 과정에서 발생하는 '초기화 콜백'과 '소멸전 콜백' 을 활용하여

객체의 초기화와 종료를 제어 할 수 있다.

덕분에 정리가 됐습니다 감사합니다

 

 

jaho321님의 프로필 이미지

작성한 질문수

질문하기