본문 바로가기

SpringFramework Core - I. IoC 컨테이너/9. 어노테이션 기반의 컨테이너 설정

9.9. @PostConstruct와 @PreDestory 사용하기

원문: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/core.html#beans-postconstruct-and-predestroy-annotations

 

 

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한다.
    }
}

다양한 라이프사이클 메커니즘들의 결합 효과를 자세히 알고 싶다면, 라이프사이클 메커니즘들 결합시키기를 참고하라.