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

대영님의 프로필 이미지
대영

작성한 질문수

스프링 핵심 원리 - 기본편

애노테이션 @PostConstruct, @PreDestroy

예제의 라이프사이클 질문있습니다.

해결된 질문

작성

·

225

2

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]


LifeCycleTest에서 networkClient가 빈으로 등록되는 순서가

1. new NetworkClient()로 NetworkClient 인스턴스 생성 (ulr=null)

2. setUrl을 통해 1에서 생성된 인스턴스의 url 설정

3. 스프링 컨테이너에 빈 등록

이 순서로 이해했습니다.

 

스프링 빈의 라이프사이클이

스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 이 순서인데

 

이 강의의 예제에서 의존관계 주입은 없으니까 바로 초기화 콜백인 init()이 실행되고, 사용 또한 하지 않으니 바로 소멸전 콜백인 close()가 실행 되는 것으로 이해하면 될까요?

 

정리하면

networkClient 빈 생성 -> x -> init() -> x -> close()

이 순서가 맞는지 확인 부탁드립니다!

답변 1

2

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

networkClient 빈 생성 -> x -> init() -> x -> close()

여기서 x가 무엇인지 고민했는데,

스프링 빈 생성 -> 의존관계 주입(x) -> 초기화 콜백 -> 사용(x) -> 소멸전 콜백

와 매칭이 되나보네요.

말씀하신 것처럼 NetworkClient는 의존관계가 없고(ex)MemberService와 MemberRepository와 같은)

빈을 조회하는 것 외의 사용하는 코드가 없으므로 이해하신 내용에 틀린 내용은 없는 것 같습니다 😀

image

감사합니다.

대영님의 프로필 이미지
대영
질문자

감사합니다 :)

대영님의 프로필 이미지
대영

작성한 질문수

질문하기