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; }}
?配置文件:
?
<bean id="bean2" destroy-method="destroy"></bean><bean id="bean3" depends-on="bean1" destroy-method="destroy"></bean>
<bean id="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.