예제 4-15 @Bean으로 소멸 메서드 정의([[initializing-bean-destroy]] DestructiveBeanConfigDemo.java)
package com.apress.prospring5.ch4.config; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Lazy; import org.springframework.context.support.GenericApplicationContext; import com.apress.prospring5.ch4.DestructiveBean; public class DestructiveBeanConfigDemo { @Configuration static class DestructiveBeanConfig { @Lazy @Bean(initMethod = "afterPropertiesSet", destroyMethod = "destroy") DestructiveBean destructiveBean() { DestructiveBean destructiveBean = new DestructiveBean(); destructiveBean.setFilePath(System.getProperty("java.io.tmpdir") + System.getProperty("file.separator") + "test.txt"); return destructiveBean; } } public static void main(String... args) { GenericApplicationContext ctx = new AnnotationConfigApplicationContext(DestructiveBeanConfig.class); ctx.getBean(DestructiveBean.class); System.out.println("destroy() 호출 시작"); ctx.destroy(); System.out.println("destroy() 호출 종료"); } }