init-method/destroy-method
스프링에서 Bean 속성으로 init-method와 destroy-method를 사용해 초기화 및 소멸 시 특정 동작을 수행할 수 있다.
수정이 불가해 InitializingBean 및 DisposableBean 인터페이스를 상속받을 수 없는 경우의 대안이 될 것이다. (일반적으로 상속보다 권장된다)
예제
아래와 같은 CustomerService 클래스가 있다.
public class CustomerService{ String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public void initIt() throws Exception { System.out.println("Init method after properties are set : " + message); } public void cleanUp() throws Exception { System.out.println("Spring Container is destroy! Customer clean up"); } } | cs |
xml
bean태그의 속성에 init-method, destory-method 밸류값으로 각각 초기화/소멸 과정에서 사용될 메서드 이름을 부여한다.
<bean id="customerService" class="services.CustomerService" init-method="initIt" destroy-method="cleanUp"> <property name="message" value="i'm property message" /> </bean> | cs |
Java
xml이 아니라 자바 설정을 사용하는 경우에는 @bean 어노테이션에서 속성을 사용하면 된다.
@Bean(initMethod="initIt" destroyMethod="cleanUp") | cs |
또는 @bean 어노테이션이 적용된 메서드에서 직접 초기화 메서드를 실행할 수도 있다.