方法のオブジェクトを作成するためのSpring Beanのコンテナ:
図1に示すように、インスタンスを作成するために、引数なしでコンストラクタを呼び出すためにリフレクションを使用して(通常モード)(引数なしのコンストラクタクラスを想定)
クラスファクトリのインスタンスによって得られる2、(ファクトリクラスがインターフェイスを実装FactoryBeanの<?>)
図3に示すように、オブジェクトは、(任意のインタフェースを実装または継承またはスーパーする必要はない)例ビーンプラントの方法によって得られます
4、staticファクトリによってインスタンスを取得
IOCの注釈の設定
1は、Autowired @
1)@Autowired後に次を追加することで有効にするXML設定ファイルを使用する必要があります。<context:アノテーションのconfig / >
2)@Autowiredはインスタンス複数種類のに適合した場合、byTypeのデフォルト属性を組み立て、その後、豆BYNAMEによって決まります。
2、@リソース
1)@Resourceの役割と似て@Autowiredいますが、byTypeを注入し、その後、右を見つけると、できない場合は、デフォルトでは、BYNAMEで最初@Resourceです
2)を有効にするXMLファイルに以下の構成を追加することによって:<コンテキスト:アノテーション設定/>
byName
Beanがタグ名またはID属性値マッチング注射によって行われる(設定のsetXXX除去の名前と一致した後に)、byType
クラスビーンタグの種類に応じている注射と一致。(現在のクラスのパラメータは、設定された方法のタイプ
コンテナ試合でオブジェクトを見つけます)
例えば:
注意:唯一の自動組立[オブジェクトの種類]機能のために、基本的なタイプでは動作しません。
@Autowired
プライベートカーの車;
<! - autowire注解默认bytype、再BYNAME - >
<Bean名= "車" クラス= "com.briup.ioc.annotation.Car">
<プロパティ名= "価格"の値= "33333"> </プロパティ>
<プロパティ名= "名前"値= "テスト"> </ property>の
</豆>
<Bean名= "car123456" クラス= "com.briup.ioc.annotation.Car">
<プロパティ名=「価格"値=" 122222 "> </ property>の
<プロパティ名="名前」値= "baoma"> </ property>の
</豆>
結果:
33333.0
テスト
3、@コントローラコントローラ(噴射サービス)
制御層を標識するために使用される、層は、ストラットの作用に相当
4、@サービスサービス(DAO注入)
サービス層を標識するために使用される、主にサービス処理ロジックのために使用される
5、@リポジトリ(DAOアクセスを達成する)
注釈データアクセスコンポーネント、すなわち、DAOコンポーネント。前記ための注釈データアクセス層のために、使用されてもよい
。6、@成分(POJOは、通常スプリング容器内にインスタンス化され、コンフィギュレーションファイルに対応する
<ビーンIDが=「」クラス=「」/ >)
)とき@コントローラーの(一部ではない私たちのクラスは、ときなど、サービス@、分類の多様に属していないとき、つまり、種々の成分を意味し、我々は@Componentを使用することができますこのクラスをマーク。
春に共通Beanコンポーネントは、@Repository @Service @Controllerが@Componentである全ての形態@Component(それらの間にほとんど差は、分類使用することが好ましいです)
豆の名前を指定するオプションのパラメータ@Component
@Component(「ボス」)
指定しない場合、デフォルトでは小文字現在のクラスにクラス名です
@Component注釈は、XMLで定義することなく、直接、Beanを定義することができます。二つの定義が存在する場合は、Bean定義は、クラスのXML注釈の定義をカバーします
トップクラスに直接書き込ま@Componentノート
注:
1.componentスキャンラベルが自動的に(すべてのサブパケットを含む)指定されたパスの場合にデフォルトのパケットをスキャン
@Component @Repository @Service @Controller注釈クラスで2.componentスキャンタグが自動的に登録され、バネに容器
@Required @Autowired @PostConstruct @PreDestroy @Resource @WebServiceRef @EJB @PersistenceContext付い3.componentスキャンタグ @PersistenceUnit 効果に注釈ように、操作に対応する注釈付きクラスのような
4.componentスキャンタグは注釈設定が含まれていますタグ