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()方法は確かに呼び出されました.私たちはコードを書いていませんが、アプリケーションが閉じたい時に明確に呼び出す方法です.これがテンプレートのデザインモードのフックです.