인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

wonderwall09in님의 프로필 이미지

작성한 질문수

스프링 핵심 원리 - 기본편

빈 생명주기 콜백 시작

초기화 콜백과 생성자 DI

작성

·

40

·

수정됨

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요?예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]
안녕하세요, 빈 생명주기 콜백에서 질문이 생겨 여쭤봅니다.

이전 강의에서는 '생성자 주입'을 사용하는 것이 좋다고 하셨는데, 이번 NetworkClient 클래스에서는 setter로 DI를 하시면서 스프링 빈의 이벤트 라이프사이클을 설명해주고 계십니다.

그러면, 생성자 주입으로 의존관계를 주입할 경우 이번 강의 주제인 '초기화 콜백'은 동작하지 않는 것일까요 ?

설명해주신 스프링 빈의 이벤트 라이프사이클이 생성자DI 기준에서는

컨테이너 생성 -> 빈 생성,의존관계 주입 -> 사용 -> 종료가 되는 것일까요 ? 

 

혹여나 제가 잘못 이해하고 있는 부분이 있다면 지적 부탁드립니다, 좋은 강의 제공해주셔서 항상 감사드립니다 !!

답변 1

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. wonderwall09in님, 스프링 빈의 생명주기와 관련된 질문이시네요.

스프링 프레임워크에서 빈 생명주기는 다음과 같습니다: 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸 전 콜백 -> 스프링 종료. 여기서 초기화 콜백은 빈의 의존관계가 모두 주입된 후에 호출되어, 초기화가 필요한 작업을 수행하게 되는 시점입니다.

생성자 주입(Constructor Injection)과 관련해서 설명드리자면, 생성자 주입을 사용하면 일반적으로 객체가 생성되는 동시에 의존관계 주입이 이뤄집니다. 초기화 콜백은 이러한 주입이 모두 끝난 다음에 호출됩니다. 따라서 생성자 주입을 사용해도 초기화 콜백은 여전히 유효하며, 이후에 @PostConstruct와 같은 애노테이션을 사용하여 초기화 작업을 수행할 수 있습니다.

관련된 질문과 답변은 아래 링크에서 확인하실 수 있습니다:
- “빈 생성 주기와 콜백”: 스프링의 빈 생명 주기와 콜백의 개념에 대해 상세히 설명한 게시물입니다.
- “질문입니다.”: 초기화 콜백과 소멸 전 콜백에 대한 추가 설명이 있는 링크입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

wonderwall09in님의 프로필 이미지

그러면 생성자 주입에서는

스프링 컨테이너 생성 후

스프링 빈 생성, 의존관계 주입이 동시에 일어난 뒤 초기화 콜백을 하는 것으로 보면 될까요 ..?