ゆーたんのつぶやき読者になるゆーたんのつぶやき株式会社ノークリサーチにてIT関連のシニアアナリストとして活動しています。2007-12-28依存性を何処に記述するかITDIコンテナにおける依存性の記述や解決にはこれまで大きく二つのスタンスがあったかと思います。一つはSeasarのように自動バインディングを駆使して設定ファイルを簡略化するもの、もう一つはSpringのように設定ファイルに明示的かつ詳細に記述するものです。Guiceが登場したことで、AnnotationをJavaコードで全てをカバーし、XML設定ファイルを使わないというスタンスが加わりました。JavaConfigrationが出てきているので、一概には括れませんが)確かにコード本体にはインジェクションの指定のみ記述し、詳細はModuleに記述するというスタイルには様々なメリットがあります。Moduleにコンパイルチェックが入る点です。XML設定ファイルの記述が間違っていて、実行時に判明するというミスは案外起きやすい気がします。Annotationについても「@Singleton」のようにコードを見て、コンポーネントのライフサイクルを掴めることは第三者がコードを見る時のことを考えると利便性に適っています。個人的には「@ImplementedBy(***.class)」でデフォルトのバインディングを指定できる点が気に入っています。コード単体でモック試験をしたい場合にモックとして使われるクラス名が一目で確認できるからです。TXInterceptor());と記述し、「Transactional」をAnnotationとして定義しておけば、コード中に「@Transactional」を付加したOrderクラスのメソッドに注入されます。AllianceのMethodInterceptorを実装した一般的なものを指定することができます。「only(...)」の部分を「Order.class.getPackage()」とすればOrderクラスが属するパッケージ全体を対象にできるといったように対象クラス指定も柔軟です。Configurationの動きなども見ると、やはり今後はXML設定ファイルはなるたけ使わずにJavaコード内で完結できるようにする方向が主流になっていくのでしょうか。引き続き、DIの使い勝手の進化をウォッチしていきたいと思います。9はてなブログをはじめよう!dufresneさんは、はてなブログを使っています。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。