春の注釈駆動型SEVEN - 利用登録コンポーネントFactoryBeanの

また、実際の開発にコンポーネントを登録するためのSpring Beanが提供するファクトリを使用することができます

まず、豆植物の実装を作成

/ ** 
 * Tは、工場ビーンによって得られた、一般的な豆のオブジェクトである
 * 
 * / 
パブリック クラス ColorFactory 実装 FactoryBeanの<カラー> {
     / ** 
     *メソッドのgetObject工場豆豆により得られた容器ロードする
     * / 
    パブリックカラーのgetObjectを( )スロー{例外
         返す 新しい新しい、カラー()
    } 
    / ** 
     *戻り豆容器IOCのタイプ
     * / 
    パブリック <?>クラスgetObjectType(){
         // TODO自動生成されたメソッドスタブを
        返す。カラークラス; 
    } 
    / ** 
     シングルトンかどうか、容器内*設定Beanオブジェクト
     *戻り値は真である:シングルトン
     * flase戻り値:複数の例
     * / 
    パブリック ブールisSingleton(){
         戻り falseに; 
    } 
}

ColorFactoryは、マスター構成に@Bean注釈カテゴリを通って容器に登録しました

@Configuration
 パブリック クラスMainConfig2 {
     // デフォルトIDと呼ばれる方法
    @Bean
     公共ColorFactory getColorFactory(){
         戻り 新しい新しいColorFactoryを(); 
    } 
}

私たちは、テストクラスに道のコンテナコンポーネントIDを取得することによって、Beanオブジェクトのコンテナを取得します

パブリック クラスIOCTest { 
    @Test 
    公共 ボイドTEST4(){ 
        ApplicationContextのApplicationContextの = 新しい AnnotationConfigApplicationContext(MainConfig2。クラス)。
        オブジェクトcolorFactory = applicationContext.getBean( "getColorFactory" )。
        System.out.println(colorFactory)。
    } 
}

結果:

com.wxj.bean.Color@57d5872c

我々は、リザーバ内に存在するが好きにColorFactoryないが見つかったが、観察によるカラーオブジェクトは、コンテナの方法は、工場豆のgetObject(によって作成された)容器を登録するオブジェクトを返すことを示しています。

だから、あなたはそれを得るべきか、ColorFactoryオブジェクトを取得する必要がありますか?豆のID名の前に取得するには、「&」記号を追加する必要があります。

パブリック クラスIOCTest { 
    @Test 
    公共 ボイドTEST4(){ 
        ApplicationContextのApplicationContextの = 新しい AnnotationConfigApplicationContext(MainConfig2。クラス)。
        オブジェクトcolorFactory = applicationContext.getBean( "&getColorFactory")。// "&"可获得工厂豆对象
        のSystem.out.println(colorFactory)。
        
    } 

}

結果:

com.wxj.ColorFactory@57d5872c

拡張:

  単一のインスタンスを使用する場合、getObjectメソッドは一度だけ呼び出される、マルチインスタンスの場合、すべての取得BeanはのgetObject()メソッドを呼び出します。

おすすめ

転載: www.cnblogs.com/xingjia/p/11210826.html