春の依存性注入三つの方法

 

  2つのカテゴリに分類実際の環境的IoCコンテナで、一方は背面対応するリソースを見つけるために、リソースロケータ依存ルックアップを介して、依存ルックアップであり、他方は、注射に依存し、主スプリングを用いています依存性の注入。一般的に、注射依存性は、次の3つの方法に分けることができます。
  •コンストラクタ・インジェクション。
  •セッターインジェクション。
  •インターフェイス注射。
  コンストラクタ・インジェクションとセッター注入が主な方法であって、インターフェイス注入は、このようなWebプロジェクトのように他の場所、途中から注入され、コンフィギュレーション・データソースは、多くの場合、(Tomcatなど)サーバーを経由するように構成され、今回我々は、JNDIを使用することができますこれは、春のIoCコンテナを注入するためのインタフェースを介して、それを形成しています。ここで彼らが詳細に説明されています。

コンストラクタ・インジェクション

  注射の方法を実施コンストラクタは、設定に依存し、この方法は、パラメータのパラメータのいずれかを有していないように構成することができます。ほとんどの場合、我々はすべてのクラスのコンストラクタクラスオブジェクトによって作成され、道の春の反射も、コンストラクタ・インジェクション原理である注入法を使用して建設を完了するために使用することができます。

パブリック クラス役割{
     プライベートロングID。
    プライベート文字列のroleName。
    プライベート文字列のノート。


    公的役割(文字列のroleName、文字列注){
         この .roleName = のroleName。
        この。注= ノート。
    } 

    / ** ******セッターとゲッター****** * / 
}

  この時間は、正確にオブジェクトの春を作成することを可能にするために、あなたはリストのようにそうすることができ、オブジェクトを作成するには、引数なしのコンストラクタを利用する方法はありません。

< ビーンID = "ROLE1" クラス= "com.ssm.chapter9.pojo.Role" > 
    < コンストラクタ、引数インデックス= "0" = "总经理" /> 
    < コンストラクタ、引数インデックス= "1" =」公司管理者」/> 
</ >

  位置インデックスのパラメータを定義するために使用されるクラス定義、および値のconstructorarg要素引数コンストラクタは、オブジェクトを作成することを知っているであろう春ような役割(文字列、文字列)コンストラクタを使用して、このような方法で定義された設定値です。このような注入は比較的簡単ですが、ここでのパラメータは比較的小さいので欠点は、また明らかにされているので、可読性が良いですが、引数多くは、ので、この工法が複雑であり、この時間は、セッターインジェクションと考えられる場合。

セッター・インジェクションを使用してください

  スプリングセッタ注入は注入、柔軟かつ高い可読性を完了するためにJavaBeanの仕様定義セッターメソッドを使用して、最も主流の注入方法、です。コンストラクタインジェクションを使用する場合、それは複数のパラメータの可能性を排除し、最初のコンストラクタは、パラメータなしで宣言することができ、その後、Java技術により反射現実を、実際には、対応する値を設定するセッター注入を使用。ファーストクラスのコードリストの役割は、パラメータなしのコンストラクタを追加したため、ここで仮定して、構成コードのリストを行います。

< ビーンID = "role2の" クラス= "com.ssm.chapter9.pojo.Role" > 
    < プロパティ= "のroleName" = "高级工程师" /> 
    < プロパティ= "注意" = "重要人员" / > 
</ 

  そのようなスプリングコンストラクタは、対応する設定手段によって設定反射値を注入しながら反射することによって起動されたオブジェクトパラメータを生成しないであろう。このアプローチは、広く実用的な作業に使用されるほとんどの主要な方法の春、です。

インタフェース注入

  そこリソースが独自のシステムからではない場合がありますが、外の世界から、データベースなどの接続リソースが完全にTomcatの下で構成することができ、その後、データベース接続のリソースは、外国の開発プロジェクトに属するリソースがあるように、JNDIフォームを通してそれを取得し、この時間に行く我々インタフェース注入はの形でそれを得るために使用することができます

おすすめ

転載: www.cnblogs.com/ooo0/p/10962360.html