コンテナ管理のBeanのライフサイクル、我々は、初期化や破壊方法をカスタマイズすることができ、時間の現在のライフサイクルへのBeanコンテナで初期化し、破壊する方法私たちの習慣を呼び出すこと。
ここで初期化し、豆のデモンストレーションを破壊する3つの方法があります。
まず、にinitMethod @Bean自身の注釈を使用して()とdestroyMethodを()。
第二、およびInitializingBean DisposableBeanインターフェースafterPropertiesSetを(達成)および破壊()メソッド。
(コンテナがBeanを破壊する前に、私たちは仕事をきれいにしましょう)と@PreDestroy;第三に、あなたはPostConstruct(初期化メソッドを実行するために割り当てが完了した豆や財産に作成)@、JSR250を使用することができます
パブリック クラスの車{ プライベート int型のID。 公共 INT のgetId(){ 戻りID。 } 公共 ボイド SETID(int型のID){ この .ID = ID。 } パブリックカー(){ System.out.printlnは( "カーコンストラクタ....." )。 } 公共 ボイド のinit() { System.out.printlnは( "カーINIT ....." )。 } 公共 ボイドDestoryは() { System.out.printlnは("カーDestoryは....." ); } }
パブリック クラス猫実装InitializingBean、DisposableBean { パブリックキャット(){ System.out.printlnは( "猫构造方法を......" )。 } @Override 公共 ボイドは(破壊)スロー例外{ するSystem.out.println( "猫销毁方法" )。 } @Override 公共 ボイド afterPropertiesSet()がスロー例外{ するSystem.out.println( "猫初始化方法を......" )。 } } @Configuration
クラス犬{パブリック
パブリック犬(){
System.out.printlnは(「犬......構築」);
}
//オブジェクト作成および割り当てられたコールの後
@PostConstruct
公共ボイドのinit()
{
System.out.printlnは( ) "犬..... INITを@PostConstruct";
}
@PreDestroy
公共ボイドDestoryは()
{
System.out.printlnは( "犬Destoryは@PreDestroy .....");
}
。@import(犬のクラス)
@Configuration パブリック クラスCONFIG1 { @Bean(にinitMethod = "INIT"、destroyMethodをは= "Destoryは" ) 公共カー車(){ 返す 新しい)(カーを。 } @Bean 公共猫ネコ(){ 戻り 新しい )(猫、 } }
パブリック クラスアプリ{ 公共 静的 ボイドメイン(文字列[]引数){ AnnotationConfigApplicationContextコンテキスト = 新しい AnnotationConfigApplicationContext(CONFIG1。クラス)。 文字列[] beanDefinitionNamesの =のcontext.getBeanDefinitionNames()。 用(文字列N:beanDefinitionNames) { System.out.printlnは(N) } context.close()。 } }
結果:
犬は......構築 .....犬のinit @PostConstructを 41:13を29.489 [メイン] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory -シングルトンBeanの車のの共有インスタンスの作成 カーコンストラクタ。 .... 車のinit ..... 13:41:29.522 [メイン] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory -シングルトンBeanの猫の共有インスタンスの作成 猫构造方法を...... 猫初始化方法...... org.springframework.context.annotation.internalConfigurationAnnotationProcessor org.springframework.context.annotation.internalAutowiredAnnotationProcessor org.springframework.context.annotation.internalCommonAnnotationProcessor org.springframework.context.event.internalEventListenerProcessor org.springframework.context.event.internalEventListenerFactory CONFIG1 com.yuan.beancycle.model.Dogの 車の 猫 13:41:29.577 [メイン] DEBUG org.springframework.context.annotation.AnnotationConfigApplicationContext -閉会org.springframework.context.annotation.AnnotationConfigApplicationContext@544a2ea6は、月8月5日13で開始しました:41:29 CST 2019 切断ターゲットVMから、アドレス: '127.0.0.1:64811'、輸送: 'ソケット' 猫销毁方法 カーDestoryは..... 犬Destoryはの@PreDestroy .....