お勉強メモ
DIとType
最終更新:
匿名ユーザー
-
view
名称 |
サポートするDIタイプ |
備考 |
---|---|---|
Spring |
Type2およびType3 |
J2EE用のフレームワーク |
PicoCountainer |
Type2およびType3 | DIコンテナ |
WebWork2 |
Type2 |
Web用のフレームワークとDIコンテナを提供する |
Seasar2 |
Type2,3 |
国産のアプリケーションサーバ |
これらDIコンテナに共通する主題は依存を注入することによってシステム内に存在するオブジェクト同士の結合度をゆるくすることであり、そのための仕組み。
DIコンテナは依存性を注入する仕組みによって3つのタイプ(Type)に分けられる。
Type2(Setter Injection)
特徴
オブジェクト間の関連がXMLファイルに記述されDIコンテナがオブジェクトのSetterメソッドを利用して参照するobjを設定すること
point
SetterメソッドをもっているPOJOであればType2のDIコンテナ用に作られたAppでなくても簡単にDIコンテナに管理をまかせることができるようになるということ
Type3(Constructor Injection)
特徴
DIコンテナがObjのコンストラクタのパラメータとして参照するObjを設定すること。
参照するObj、参照されるObjは開発者が作成し、コンテナは関連付けだけを依頼すること
XMLにかくわけじゃないので理解しやすい。
反面、DatasourceのようにRDBによって異なるObjの関連がほしい場合の柔軟性に欠ける。
Type1(Interface Injection)
特徴
インターフェースを実装することにより、その抽象メソッドのパラメータとして渡されたServiceManagerを利用しobjを取得する。