Mega Code Archive

 
Categories / Java / Spring
 

Bean Lifecycle DisposableBean

File: Main.java import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.util.Assert; public class Main {   public static void main(String[] args) throws Exception {     XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("context.xml"));     Runtime.getRuntime().addShutdownHook(new Thread(new ShutdownHook(factory)));        } } class ShutdownHook implements Runnable {   private ConfigurableListableBeanFactory beanFactory;   public ShutdownHook(ConfigurableListableBeanFactory beanFactory) {       Assert.notNull(beanFactory, "The 'beanFactory' argument must not be null.");       this.beanFactory = beanFactory;   }   public void run() {       this.beanFactory.destroySingletons();   } } class DestructiveBeanI implements InitializingBean, DisposableBean {   public void afterPropertiesSet() throws Exception {   }   public void destroy() {       System.out.println("Destroying Bean");   }   @Override   public String toString() {       final StringBuilder sb = new StringBuilder();       sb.append("DestructiveBean");       return sb.toString();   } } File: context.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"        xsi:schemaLocation="                 http://www.springframework.org/schema/beans                 http://www.springframework.org/schema/beans/spring-beans.xsd">     <bean id="destructive" class="DestructiveBeanI">         <property name="filePath" value="/tmp"/>     </bean> </beans>                     Spring-BeanLiftCycleDisposableBean.zip( 2,600 k)