CommonAnnotationBeanPostProcessor
는 @Resource
어노테이션뿐만 아니라 JSR-250 라이프사이클 어노테이션(jakarta.annotation.PostConstruct
및 jakarta.annotation.PreDestroy
)도 인식합니다. Spring 2.5에 도입된 이러한 주석 지원은 초기화 콜백 및 소멸 콜백에 설명된 수명 주기 콜백 메커니즘에 대한 대안을 제공합니다. CommonAnnotationBeanPostProcessor
가 Spring ApplicationContext
내에 등록된 경우 이러한 어노테이션 중 하나를 전달하는 메소드는 해당 Spring 라이프사이클 인터페이스 메소드 또는 명시적으로 선언된 콜백 메소드와 라이프사이클의 동일한 지점에서 호출됩니다. 다음 예에서는 캐시가 초기화 시 미리 채워지고(pre-populated) 삭제 시 지워집니다.
public class CachingMovieLister {
@PostConstruct
public void populateMovieCache() {
// populates the movie cache upon initialization...
}
@PreDestroy
public void clearMovieCache() {
// clears the movie cache upon destruction...
}
}
다양한 수명 주기 메커니즘 연결(combine)의 효과에 대한 자세한 내용은 수명 주기 메커니즘 연결(combine)을 참조하세요.
[Note]
@Resource
와 마찬가지로@PostConstruct
및@PreDestroy
어노테이션 타입은 JDK 6부터 8까지 표준 Java 라이브러리의 일부였습니다. 그러나 전체javax.annotation
패키지는 JDK 9의 핵심 Java 모듈에서 분리되어 결국 JDK 11에서 제거되었습니다. Jakarta EE 9부터 패키지는 이제jakarta.annotation
에 있습니다. 필요한 경우 이제 Maven Central을 통해jakarta.annotation-api
아티팩트를 가져와야 하며 다른 라이브러리처럼 애플리케이션의 클래스패스에 추가하기만 하면 됩니다.