[10분 테코톡] 모루의 Spring Bean의 생명주기 들여다보기
- 스프링 빈 생명주기는 컨테이너 초기화, 빈 생성, 의존성 주입, 초기화, 사용, 소멸 순으로 진행된다. 🔄
BeanDefinition
은 빈 생성 및 관리에 필요한 메타데이터를 담고 있어 일관성을 유지한다. 🗂️
- 컴포넌트 스캔은
@Component
어노테이션을 찾아 BeanDefinition
을 생성하고 등록한다. 🔍
- Java Config 방식은
@Configuration
클래스와 @Bean
메서드를 통해 빈을 등록한다. ⚙️
- 빈 인스턴스 생성 순서는
BeanDefinition
등록 순서, 생성자 파라미터 순서, 의존성에 영향을 받는다. ⏳
@PostConstruct
어노테이션은 초기화 시점에 메서드를 실행하고, @PreDestroy
는 소멸 시점에 실행한다. 💥
BeanPostProcessor
가 @PostConstruct
와 @PreDestroy
어노테이션을 탐색하여 lifecycleMetadataCache에 등록한다. 🔦