豆の初期化と破壊方法

1、豆ライフサイクル:
  の破壊の豆の作成--- ----初期化プロセス
  コンテナ管理のBeanのライフサイクル;
  私たちは、初期化や破壊方法をカスタマイズすることができ、Beanコンテナでから私たちを呼び出すために、現在のライフサイクル時間に初期化と破壊方法が定義されました。
2、初期化および破壊方法を指定します。
  指定INIT-方法及び破壊法を@Beanによっては、
初期化:オブジェクトが作成され、良好な初期化方法は、(単一インスタンスまたはマルチインスタンス)と呼ばれている割り当てられた後、
破壊方法:単一インスタンス:オブジェクトが破壊されるか、または密閉容器は、このメソッドを呼び出します。
      マルチインスタンス:それは破壊メソッドを呼び出すことはありませんので、コンテナは、Beanを管理しません。
@Component
 パブリック クラスの車{
     パブリックカー(){ 
        System.out.printlnは( "カーコンストラクタ..." ); 
    } 
    公共 ボイドのinit(){ 
        System.out.printlnは( "車...のinit ..." )。
    } 
    公共 ボイドdetory(){ 
        System.out.printlnは( "車... detory ..." )。
    } 
}

   コンテナに豆で:

@Configuration
 パブリック クラスMainConfigOfLifeCycle { 
    
    // @Scope( "プロトタイプ") 
    @Bean(にinitMethod = "INIT"、destroyMethodを= "detory" 公衆カー車(){
         返す 新しい(車を)。
    } 

}

図3は、InitializingBeanビーン(定義された初期化ロジック)------ afterPropertiesSet()メソッドを有することによって達成しました

             DisposableBean(定義された論理破壊)---破壊()メソッド。
@Component
 パブリック クラスキャット実装InitializingBean、DisposableBean { 
    
    パブリックキャット(){ 
        System.out.printlnは( "猫のコンストラクタ..." ); 
    } 
    @Override 
    公共 ボイド)(破壊スロー例外を{
         // TODO自動生成されたメソッドスタブ 
        のSystem.out.println( "猫は... ...破壊します" ); 
    } 
    @Override 
    公共 ボイド afterPropertiesSet()がスロー例外{
         // TODO自動生成方法スタブを
        System.out.println( "猫... afterPropertiesSet ..." ); 
    } 
}

図4は、JSR250を使用することができます。

  @PostConstruct:豆の作成は完了し、プロパティの割り当てが完了すると、初期化方法を実行します

  @PreDestroy:私たちは豆の容器の破壊前にクリーンアップしていきましょう

@Component
 パブリック クラス犬{
     パブリック犬(){ 
        System.out.printlnは( "犬のコンストラクタ..." ); 
    } 
    // オブジェクトが作成され、割り当てられた後、コール
    @PostConstruct
     公共 ボイドのinit(){ 
        System.out.printlnは( " PostConstruct @ .... ...犬" ); 
    } 
    // オブジェクトの除去前に容器
    @PreDestroy
     公共 ボイドdetoryを(){ 
        System.out.printlnは( "ドッグザPreDestroy @ ... ... " ); 
    } 
}

5、春はBeanPostProcessor、豆ポストプロセッサを提供してくれます

【BeanPostProcessor]インターフェース:ビーンポストプロセッサ; 
  豆の前及び後の処理いくつかの初期化;
  postProcessBeforeInitialization:初期化の前に作業
  postProcessAfterInitialization:初期化作業後
/ ** 
 *ポストプロセッサは:初期化処理の後前
 *後処理を容器に加え* / 
@Component 
パブリック クラス MyBeanPostProcessor 実装BeanPostProcessor { 

    @Override 
    パブリックオブジェクトpostProcessBeforeInitialization(豆、のbeanName文字列オブジェクト)がスローBeansException {
         /を/ TODO自動生成されたスタブメソッド 
        のSystem.out.println(「postProcessBeforeInitialization ...」のbeanName + +「=>」+ 豆)は、
         戻り豆を、
    } 

    @Override 
    パブリックオブジェクトpostProcessAfterInitialization(豆、のbeanName文字列オブジェクト)スローBeansExceptionを{
        // TODO自動生成方法スタブ 
        のSystem.out.println( "postProcessAfterInitialization ..." +のbeanName + "=>" + 豆)。
        リターン豆。
    } 
}

 

 

おすすめ

転載: www.cnblogs.com/mayang2465/p/12092987.html