とあるエンジニアの備忘録

SE・コンサルタントの備忘録

Spring DI

DI (dependency injection)

ファイル構成

まずweb.xml が読み込まれ、記述された以下を参照する
-bean定義ファイルの設定、ファイル場所
-servletの設定、ファイル場所
-受信リクエストと使用するservletマッピング設定

DIの使い方

1.アノテーションを使用する方法

 DI対象クラスに@component、呼び出す側クラスのプロパティに@autowired をつける
 Bean定義ファイル以下タグを記述する必要がある

	<context:annotation-config/>
	<context:component-scan base-package="スキャン対象コンポーネント" />  ←test1.spring.*

2.Bean定義ファイル(~~.xml)にすべて記載する方法

 Bean定義ファイルにDIするクラスだけでなく、呼び出す側クラスのプロパティも記述する
 アノテーションはなくなるが、呼び出す側クラスにプロパティのアクセサを記述する

DIする使いドコロ

 -エンティティ、DB直接いじるクラスには使わない。わざわざインジェクションしない
 -サービス⇔コントローラ、サービス⇔DAO間などで実装する

代表的なアノテーション
 @Autowired  :呼び出す側 
   プロパティにつけるとcomponent-scanで指定したパッケージの@Component付いたクラスから探してくれる
   メソッドコンストラクタにつけると引数のオブジェクトをDIする

 @Component:DI対象にするクラス
   拡張した以下のアノテーションがある
                        @Controller:プレゼン系・・View周りのクラス
                        @Service:ロジック系のクラス
                        @Repository: DAO系・・DB周り



Spring3入門 ――Javaフレームワーク・より良い設計とアーキテクチャ

Spring3入門 ――Javaフレームワーク・より良い設計とアーキテクチャ