※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

名称
サポートする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を取得する。