Spring销毁种顺序
Spring销毁类顺序
Spring destroy类的顺序通过配置文件中配置“depends-on”来实现,同理init顺序正好相反。
实例:
bean1:
public class Bean1 { public void destroy() { System.out.println("bean1 destroy."); } }
bean2:
public class Bean2 { public void destroy() { System.out.println("bean2 destroy."); } }
bean3:
public class Bean3 { // private Bean1 bean1; public void destroy() { System.out.println("bean3 destroy."); } }
bean4:
public class Bean4 { private Bean2 bean2; public void destroy() { System.out.println("bean4 destroy."); } public void setBean2(Bean2 bean2) { this.bean2 = bean2; } }
配置文件:
applicationContext.xml 写道
<bean id="bean1" class="com.alibaba.cep.collection.advice.Bean1" destroy-method="destroy"></bean>
<bean id="bean2" class="com.alibaba.cep.collection.advice.Bean2" destroy-method="destroy"></bean>
<bean id="bean3" class="com.alibaba.cep.collection.advice.Bean3" depends-on="bean1" destroy-method="destroy"></bean>
<bean id="bean4" class="com.alibaba.cep.collection.advice.Bean4" depends-on="bean2" destroy-method="destroy"></bean>
<bean id="bean2" class="com.alibaba.cep.collection.advice.Bean2" destroy-method="destroy"></bean>
<bean id="bean3" class="com.alibaba.cep.collection.advice.Bean3" depends-on="bean1" destroy-method="destroy"></bean>
<bean id="bean4" class="com.alibaba.cep.collection.advice.Bean4" depends-on="bean2" destroy-method="destroy"></bean>
执行mian:
public static void main(String[] args) { ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); ac.destroy(); }
执行结果:
写道
bean4 destroy.
bean3 destroy.
bean2 destroy.
bean1 destroy.
bean3 destroy.
bean2 destroy.
bean1 destroy.