Bean Life Cycle 콜백 중에서 InitializingBean과 DisposableBean 인터페이스를 사용하거나 XML 설정에서 bean 태그 속성 중에 init-method와 destroy-method 을 사용하여 특정 메소드를 생성자가 호출 된 후(초기화 이후)나 객체가 소멸되기 전에 실행할 메소드를 지정할 수 있었습니다.
이것에 대한 또 다른 대안이자 JSR-250 라이프사이클 애노테이션 표준을 따르는 @PostConstruct와 @PreDestroy 애노테이션이 Spring 2.1에 추가되었습니다.
public class CachingMovieLister {
@PostConstruct
public void populateMovieCache() {
// populates the movie cache upon initialization...
}
@PreDestroy
public void clearMovieCache() {
// clears the movie cache upon destruction...
}
}
@PostConstruct
public void populateMovieCache() {
// populates the movie cache upon initialization...
}
@PreDestroy
public void clearMovieCache() {
// clears the movie cache upon destruction...
}
}
사용법은 위 처럼 더욱 간편해 졌습니다.
정리하다 보니 궁금한 것이 생겼는데 애노테이션에서도 설정하고 XML에서도 설정을 하면 어떻게 될지 입니다.
그래서 예제를 만들어 돌려보았습니다.
public class SimpleMovieLister {
public void initMethod(){
System.out.println("initMetod");
}
@PostConstruct
public void postConstuct(){
System.out.println("postConstruct");
}
}
<bean name="lister" class="whiteship.SimpleMovieLister"
init-method="initMethod" />
init-method="initMethod" />
init-method 속성도 사용하고 @PostConstruct 애노테이션도 사용하면 다음과 같이 @PostConstruct가 먼저 적용되는 것을 확인할 수 있었습니다.
출처 - http://whiteship.tistory.com/tag/@PostConstruct%20%EC%95%A0%EB%85%B8%ED%85%8C%EC%9D%B4%EC%85%98
'Framework & Platform > Spring' 카테고리의 다른 글
Spring AOP Proxy (0) | 2012.11.13 |
---|---|
spring - Either add CGLIB to the classpath or remove the following @Configuration bean definitions (0) | 2012.11.12 |
Spring MVC Framework Tutorial (0) | 2012.11.09 |
spring - JSR-250(@Resource) (0) | 2012.11.01 |
spring - 스프링 표현 언어(SpEL) (0) | 2012.10.22 |