3.10.3. @PostConstruct and @PreDestroy
Bean Life Cycle 콜백 중에서 InitializingBean과 DisposableBean 인터페이스를 사용하거나 XML 설정에서 bean 태그 속성 중에 init-method와 destroy-method 을 사용하여 특정 메소드를 생성자가 호출 된 후(초기화 이후)나 객체가 소멸되기 전에 실행할 메소드를 지정할 수 있었습니다.
이것에 대한 또 다른 대안이자 JSR-250 라이프사이클 애노테이션 표준을 따르는 @PostConstruct와 @PreDestroy 애노테이션이 Spring 2.1에 추가되었습니다.
@PostConstruct
public void populateMovieCache() {
// populates the movie cache upon initialization...
}
@PreDestroy
public void clearMovieCache() {
// clears the movie cache upon destruction...
}
}
사용법은 위 처럼 더욱 간편해 졌습니다.
정리하다 보니 궁금한 것이 생겼는데 애노테이션에서도 설정하고 XML에서도 설정을 하면 어떻게 될지 입니다.
그래서 예제를 만들어 돌려보았습니다.
public void initMethod(){
System.out.println("initMetod");
}
@PostConstruct
public void postConstuct(){
System.out.println("postConstruct");
}
}
init-method="initMethod" />
init-method 속성도 사용하고 @PostConstruct 애노테이션도 사용하면 다음과 같이 @PostConstruct가 먼저 적용되는 것을 확인할 수 있었습니다.