Today I Learned_220803
Spring Framework
Bean Lifecycle Callback
스프링이 생성된 후나 소멸되기 전에 bean 안의 메소드를 호출할 수 있는 기능
스프링은 의존관계 주입이 완료거나, 컨테이너가 종료될 때 콜백을 준다(기준 : setter/filed injection, singleton scope)
Spring Bean Event Lifecycle
조건 : singleton scope, 생성자 주입 제외
스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료
- 객체를 생성해야지 의존관계를 주입할 수 있기 때문
- 초기화와 객체 생성은 다르다.
- 객체 생성 : 파라미터를 받아 메모리를 할당하여 객체를 생성
- 초기화 : 객체가 일을 제대로 시작할 수 있게 준비하는 것 (setter 등등)
- 초기화는 많은 로직을 타기에 객체 생성과 같이 돌기엔 무거울 수 있다 -> 분리해보자.
- 초기화 로직이 단순하다면 생성할 때 초기화 할 수도..
초기화 콜백 : 빈이 생성되고, 빈의 의존관계 주입이 완료된 후 호출
소멸전 콜백 : 빈이 소멸되기 전에 호출
빈 생명주기 콜백 지원 방법
- 인터페이스(InitializingBean, DisposableBean)
- 설정 정보에 초기화, 종료 메소드 지정
- @PostConstruct, @PreDestroy