春のフレームワークコアの概念(A)

道豆の最初に、例えば、

  図1に示すように、実施例のコンストラクタ:このように、次のように書かれた設定ファイル

1  < ビーンID = "exampleBean" クラス= "com.mazhuo.ExampleBean" > 
2  </ >

  図2に示すように、静的ファクトリメソッドの例を使用

    この方法を使用する場合は、設定値のクラスに加えて、必要な工場法プロパティが作成したメソッドBeanインスタンスを指定する設定。次のように言葉を選んだのプロフィール:

1  < ビーンID = "exampleBean" クラス= "com.mazhuo.ExampleBean" 工場出荷時methord = "creatBean" > 
2  </ >

    次のように定義されたアプリケーションに対応するクラス:

1つの パブリック クラスExampleBean {
 2      プライベート 静的 ExampleBean exampleBean = 新しいExampleBean()。
3      プライベートExampleBean(){}
 4      パブリック 静的ExampleBean creatBean(){
 5           リターンexampleBean。  
6      }
 7 }

  3、インスタンスをインスタンス化するファクトリメソッドを使用して

    この方法は、第2の方法に類似して、この方法を使用する場合、クラス属性がNULLに設定され、ファクトリメソッド属性値が現在のBean(または上位)の名前を指定する必要がプラントプロセスを含む容器、および工場ビーンファクトリメソッド自体は、工場出荷時にmethod属性で指定する必要があります。前記ファクトリクラスファクトリメソッドが複数存在してもよいです。次のように言葉を選んだのプロフィール:

1  <! - 植物ビーン、creatBean()方法は、- > 
2  < ビーンID = "のServiceLocator" クラス= "com.mazhuo.ServiceLocator" > 
3。         <! - その他の依存性注入- > 
4  </ > 
5。 
6。 <! - ビーンが作成した豆植物- > 
7  < ID = "ClientService" 工場豆= "のServiceLocator" 工場-methord = "creatBean" > 
8  </ >

      クラス定義ファイルの上方に配置されました:

1つの パブリック クラスのServiceLocator {
 2      プライベート 静的 ClientServiceのclientService = 新しいClientService()。
3      プライベートのServiceLocator(){}
 4      公共ClientService creatBean(){
 5          リターンclientService。
6      }
 7 }

二、豆注入法

  1、コンストラクタに基づきます:

    完了するために複数のパラメータを有する容器のコンストラクタを呼び出すことにより、静的メソッド豆植物がほぼ同等で呼び出すように構成され、各パラメータの依存性を識別する。

1  パブリック クラスSimpleMovieLister {
 2      // MovieFinder依存SimpleMovieLister 
3。     プライベートMovieFinder MovieFinder;
 4      // スプリングMovieFinderコンテナはコンストラクタによって注入されてもよい
5。     公共SimpleMovieLister(MovieFinder MovieFinder){
 6。         この .movi​​eFinder = MovieFinder;
 7      }
 8。 }

       上記のコードでは、必要なコンフィギュレーション・ファイル<コンストラクタ、引数>要素はコンストラクタパラメータまたはインデックスタイプを指定します。

    開発者にも名によってあいまいさのパラメータを削除することができますが、この方法は、コードのデバッグで働くことに留意すべきは、開発者はまた、コンストラクタの名前が宣言されて表示するようにマークされ@ConstructorPropertiesを使用することができ、コンパイラによってフラグを立て有効にする必要があります。次のように参照コードがあります

1  パブリック クラスExampleBean {
 2      プライベート int型年。
3      プライベート文字列名;
4      @ConstructorProperties({ "年"、 "名" })
 5      公共 ExampleBean(int型の年、文字列名){
 6           .nameの= 名前。
7          この .year = 今年;
8      }
 9 }

  図2に示すように、ベースセッターメソッド:

    Beanをインスタンス化するためにパラメータを指定せずに、引数なしのコンストラクタまたは静的ファクトリメソッドを呼び出した後、セッターメソッドを呼び出すことによって達成。

第三に、自動組立

  1、@の構成:

    コンフィギュレーション・クラス、代替XML設定ファイル、1つまたは複数のメソッドが@Beanを注釈を付けていると注釈付き内部クラスを定義するために使用される、これらの方法はAnnotationConfigApplicationContext AnnotationConfigWebApplicationContextクラスまたはスキャンすること、およびBean定義を構築するために使用されます。

    注意:@Configuration注釈の設定クラスには、次の要件があります。@Configurationは、最終的なタイプではないかもしれない。@Configurationは匿名クラスではありません。ネストされた構成は、静的なクラスです。

  2、豆注釈登録豆@、そしてあなたは、初期化や破壊方法を指定することができます

     @Bean(名前= "testBean"、にinitMethod = "開始"、destroyMethodを= "クリーンアップ")

  豆で3、春のscope属性、次の5つのタイプ:

             例えばシングルトンは、容器が得られた場合、常にバネによって豆の一意のインスタンスを返し、単一ばね容器を表します。
           プロトタイプは、Beanごとの買収は、新しいオブジェクトを生成します表しています。
       これは、httpリクエストで有効なリクエスト(唯一のWebアプリケーション)を表しています。
       これは、ユーザー・セッション内で有効なセッション(のみのWebアプリケーション)を表しています。
       globalSessionは、グローバルセッションで有効な(唯一のWebアプリケーション)を表しています。

  <豆> </豆>に相当Configuation @ 4、

     @Bean同等の<bean> </ビーン>

    @ComponentScan等价于<文脈:コンポーネント・スキャンベースパッケージ= "com.dxz.demo" />

おすすめ

転載: www.cnblogs.com/ma-zhuo/p/11065753.html