• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

setUrl 이 null인 이유

22.04.18 08:24 작성 조회수 209

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

David님의 프로필

David

2022.04.18

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

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

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

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

감사합니다.

jaho321님의 프로필

jaho321

질문자

2022.04.18

답변 감사합니다

이후 강의를 보고 왔는데 

빈 라이프 사이클은

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

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

David님의 프로필

David

2022.04.18

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

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

jaho321님의 프로필

jaho321

질문자

2022.04.18

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

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

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

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

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