学習ベースのIoC構成ノート、最初全ての構成注釈およびXML構成機能が実現されるという認識がなければならない、同じであるプログラムとの間の結合を低減することです。フォームを設定するだけで同じではありません。
ときバーゲンコメントの設定、春のXML設定内容が徐々に注釈を使用するように変更する前に。
使用IoCの注釈
- 最初のステップ:Spring構成ファイル、構成文脈:コンポーネント・スキャンタグ
- ステップ2:トップクラスの@Component注釈を付け、またはコントローラ@彼のノートを得、サービス、@、@リポジトリ
共通アノテーション
のIoC注釈(オブジェクトを作成します)
に相当します。
<bean id="" class=""></bean>
コンポーネントの注意事項
-
役割:
リソースを管理するためのバネを聞かせします。ビーンは、XML構成に対応します -
プロパティ
値:指定豆のID。あなたはvalue属性を指定しない場合は、現在のクラスのデフォルトの豆のIDは、クラス名、最初の文字を小文字であります
コントローラおよびサービス&リポジトリ注釈
3つの音が自分の役割と属性のコメント@Componentために導出され、それらはまったく同じです。彼らは単に、より明示的なセマンティックを提供しています。
注:そこ1および割り当てに一つだけの注釈属性であり、名前が値である場合は、値が代入時に書き込むことはできません。
- @Controller:注釈層のための一般的なパフォーマンス
- @Service:注釈層のための一般的なビジネス
- @Repository:一般注釈永続層に用いられます
DIアノテーション(DI)
に相当する:
@Autowired
- 実装タイプ(byType)によって@Autowiredデフォルト
- @Autowiredは、クラスによって実装されAutowiredAnnotationBeanPostProcessor
- @Autowiredは、春にはノートを付属しています
- @Autowiredは(rerequired = false)を次の場合依存オブジェクトがnull値を許可する必要がある場合は、彼が必要なプロパティを設定することができ、ケースを存在している必要があり@Autowiredデフォルトの主張は、偽であります
- あなたが名前(BYNAME)でアセンブルしたい場合は@Qualifierコメントと併せて使用することができます
@Qualifier
- 自動注射に基づく種類に応じて、注射は、IDビーンに従って
- 彼はフィールド注入を使用する際に、独立することはできません@Autowiredと一緒に使用する必要があります
- しかしながら、噴射パラメータの方法は、独立して使用することができる場合
@資源
- フィールドに書かれたノートは、名前でデフォルトのフィールド名のルックアップを取るときに名前が見つからないときは、name属性を指定しない場合@Resourceデフォルト(BYNAME)、あなたは、名前でアセンブリ名属性@Resourceで名前を指定することができますタイプに従って組み立てられたときに豆が一致します。
- @Resourceは、J2EE JSR250仕様を達成するために属しています
- name属性を指定した場合ただし、ノート、名前だけで組み立てられるということ
彼は春の結合を低減、J2EEに属しているので、私たちは、@Resourceノートをお勧めします。このコードは、よりエレガントに見えます。
@Inject
- 名前によって必要に応じて自動組立の種類に応じて、アセンブリは、それは@Nameとが必要です
- 変数に作用することができる、setterメソッド、コンストラクタ、
- 実施注射; @Inject JSR330は、明細書、javax.inject.Injectをインポートする必要があります。
@値
- 基本型と射出型の文字列値
- 属性ファイルで取得されたプレースホルダの値
@value(“${name}”)//name是properties文件中的key
private String name
Autowired @、リソース@、ジェクトの区別@
リソースJSR250の仕様は、異なるパッケージをインポートする必要が実装されている@を注入JSR330の仕様は、達成される@ Autowired @ 1バネである、来る
ベースのインジェクトの使用@、Autowired @ 2を要求属性があることを@Autowiredを除いて、同じ
3 @ Autowired、@を注入デフォルトのマッチングの種類に応じて、一致する名前を持つリソースに従って@
ニーズと一致する必要があり、@Qualifier 4 @ Autowired名が使用している場合、@を注入そして@Nameで使用
豆スコープ・ノートを変更
- @Scope:指定豆の範囲は、次のような構成に相当します。
<bean id="" class="" scope="">
- 属性:
値:指定された範囲の値。値:シングルトンプロトタイプ要求セッションglobalsession
ライフサイクル
- @PostConstruct
- @PreDestory
に相当:
<bean id="" class="" init-method="" destroy-method=""/>
ノートやXMLの選択について
-
長所注釈:
のconfigureに簡単な、保守が容易(対応する設定を見つけることと等価であるクラスを、見つけます。)。 -
XMLの利点:
変更はソースコードを変更しないでください。これは、再コンパイルおよびデプロイ関与しません。 -
春の豆の管理アプローチの比較