CommonAnnotationBeanPostProcessor는 @Resource 어노테이션을 인지할 뿐만 아니라 JSR-250의 라이프사이클 어노테이션들인 javax.annotation.PostConstruct와 javax.annotation.PreDestroy도 인지한다. 스프링 2.5에서 소개된 것처럼, 이 어노테이션들에 대한 지원은 '초기화 콜백'과 '소멸 콜백'에서 설명했던 라이프사이클 콜백 메커니즘의 대체자를 제공한다. 스프링 ApplicationContext의 내부에 등록된 CommonAnnotationBeanPostProcessor가 제공됨으로써, 이 어노테이션을 포함하는 메소드들은, 스프링 라이프사이클 인터페이스 메소드나 명확히 선언된 콜백 메소드와 일치하는 라이프사이클의 시점에 호출된다. 다음 예시에서는 캐시가 초기화 시점에 주입되며, 소멸 시점에 clear된다.
public class CachingMovieLister {
@PostConstruct
public void populateMovieCache() {
// 초기화 시점에 movie 캐시를 주입한다.
}
@PreDestroy
public void clearMovieCache() {
// 소멸 시점에 movie 캐시를 clear한다.
}
}
다양한 라이프사이클 메커니즘들의 결합 효과를 자세히 알고 싶다면, 라이프사이클 메커니즘들 결합시키기를 참고하라.
'SpringFramework Core - I. IoC 컨테이너 > 9. 어노테이션 기반의 컨테이너 설정' 카테고리의 다른 글
9.8. @Value 사용하기 (0) | 2020.04.13 |
---|---|
9.7. @Resource로 주입하기 (0) | 2020.04.13 |
9.6. CustomAutowireConfigurer 사용하기 (0) | 2020.04.13 |
9.5. Autowiring 수식자들로써 지네릭 사용하기 (0) | 2020.04.13 |
9.4. Qualifier들을 활용한 어노테이션 기반의 정교한 Autowiring (1) | 2020.04.10 |