Spring学習の使用はフックをオフにしてbeanを廃棄します.
Springでbeanの廃棄に関する3つの方法があります.それぞれ1)ある方法を実行して、destroy()のような方法を実行して、ラベルのdestroy-method属性の制定方法名を出せばいいです.2)Dispopable Beanインターフェースを実現するdestroy方法は、DisplaBeanインターフェースが一つのdestroy方法だけであり、bean破壊前に呼び出します.コードは以下の通りです
public class DestructiveBeanImpl implements DisposableBean{
public void destroy(){
//System.out.println(" bean");//
}
}
3)フックを閉じるshutdown Hookを使ってビーンを破壊します.Spring破壊のコールバックの唯一の決定は、彼らが自動的に出発できないことです.アプリケーションが閉じる前にdestroySingletons()を呼び出してください.javaでは、シャットダウンフックを作成することができます.彼はちょうどアプリケーションが閉じる前に実行されるスレッドです.これはBenFactoryを呼び出すdestroySingletons方法の最適な方法である.最も簡単な方法は、Runnableインターフェースを実現したクラスを作成し、run()方法でdestroySingletons()を呼び出します.コードリストは以下の通りです.public class ShutdownHook implements Runnable{
private ConfigurableListableBeanFactory beanfactory;
public ShudownHook(ConfigurableListableBeanFactory beanfactory){
Assert.notNull(beanfactroy, "The 'beanfactory' argument must not be null." );
this.beanfactory = beanfactory;
}
public void run(){ // Runnable run bean
this.beanfactory.destroySingletons();
}
}
登録クローズフックコードは以下の通りです.public class ShtdownHookDemo {
public static void main(String[] args) throws IOException {
XmlBeanFactory factory = new XmlBeanFactory( new ClassPathResource( "/META-INF/spring/lifecycle-context.xml"));
Runtime.getRuntime().addShutdownHook( nwe Thread( new ShutdownHook(factory))); // Runtime
new BufferendInputStream(System.in).read();
}
}
最後のdestroySingletons()方法は確かに呼び出されました.私たちはコードを書いていませんが、アプリケーションが閉じたい時に明確に呼び出す方法です.これがテンプレートのデザインモードのフックです.