스프링 2.5에서는 bean의 라이프사이클 행동을 제어하기 위한 세 가지 옵션이 있다.
- InitializingBean과 DisposableBean 콜백 인터페이스
- 커스텀한 init()과 destroy() 메소드
- @PostConstruct와 @PreDestroy 어노테이션. 이 메커니즘들을 주어진 bean을 컨트롤하기 위해 결합시킬 수 있다.
※ 만약 여러 라이프사이클 메커니즘이 설정되어 있고 각각의 메커니즘이 서로 다른 이름으로 설정되어 있다면, 각각의 설정된 메소드들은 이 메모가 끝난 후 나열된 리스트의 순서로 실행될 것이다. 그러나 만약 여러 메커니즘들에 같은 이름의 메소드가 설정되었다면 (예를 들어, 초기화 메소드로서 init()), 그 메소드는 한번만 실행된다.
같은 bean에 대해 서로 다른 초기화 메소드들을 가지고 설정된 여러 라이프사이클 메커니즘들은 다음의 순서로 호출된다.
- @PostConstruct 어노테이션이 붙은 메소드
- InitializingBean 콜백 인터페이스에 의해 정의된 afterPropertiesSet()
- 커스텀하게 설정된 init() 메소드
소멸 메소드 또한 같은 순서로 호출된다.
- @PreDestroy 어노테이션이 붙은 메소드
- DisposableBean 콜백 인터페이스에 의해 정의된 destroy()
- 커스텀하게 설정된 destroy() 메소드
'SpringFramework Core - I. IoC 컨테이너 > 6. Bean 커스터마이징하기' 카테고리의 다른 글
1.6.1.6. 웹 앱이 아닐 때 스프링 IoC 컨테이너를 Gracefully하게 Shutting Down 하기 (0) | 2020.03.23 |
---|---|
1.6.1.5. Startup과 Shutdown 콜백 (0) | 2020.03.23 |
6.1.3. 기본적인 초기화/소멸 메소드들 (0) | 2020.03.23 |
6.1.2. 소멸 콜백 (0) | 2020.03.23 |
6.1.1. 초기화 콜백 (0) | 2020.03.23 |