2015年2月24日火曜日

Spring - 01

DIについて、
基本的な事項は省略

DIの目的について
①POJOの利用
②DIコンテナからnew演算子を消す
 ⇒FactoryMethodなどのデザインパターンの排除
③DIコンテナから渡されるインスタンスをインタフェースで受け取る
 ⇒インタフェースのコンポーネント化
 ⇒クラス(インタフェースの実装)が変更・拡張されても、それを利用しているクラスのへの影響範囲を極小化できる。
 ⇒利用しているクラス(インタフェースの実装)を置き換えてもテストが可能。

DIの利用範囲
①コントローラとサービスとの依存関係
②サービスとDAOとの依存関係

アノテーションとDI
①インスタンス変数の前に@Autowiredをつけると、DIコンテナがそのインスタンス変数の型に代入できるクラスを@Componentがついているクラスの中から見つける
 ⇒インジェクションをする
 ⇒インスタンス変数以外にメソッド宣言前でも可能
②DI方法はXML定義
 ⇒Bean定義ファイルが必要
 
  @Autowired、@Resourceを利用する場合の宣言

  @Conpmnent、@Serviceなどのコンポーネントを利用する場合の宣言
③インジェクション可能なクラスは1個
 ⇒複数名がある場合、@Qualifierを使用する(@Componentに名前を使用する)
 ⇒Bean定義ファイルを利用する