システム開発で思うところ

JavaEEを主にシステム開発をしながら思うところをツラツラを綴る

CDI

全般

JavaEE7をはじめよう(13) - インジェクション候補が複数ある場合の対処方法 - エンタープライズギークス (Enterprise Geeks)

@n_agetsu

パーフェクトJavaEECDIパートの著者でもあります。実際に何度か勉強会で話は聞かせていただいたこともあります。とにかく分かりやすいし聞きやすいです。

www.slideshare.net

www.slideshare.net

n-agetsuma.hatenablog.com

Java EE環境におけるCDIのデフォルト化 - 見習いプログラミング日記

CDIとiBATIS2.3を組み合わせる - 見習いプログラミング日記

CDIでアプリケーション設定をインジェクション - 見習いプログラミング日記

インジェクト

コンストラクタインジェクトをつかう

DIコンテナのインジェクション方法の使い分けについて - 日々常々

パーフェクトJavaEE:P47

@xxScopedには@Typedを忘れずに

パーフェクトJavaEE:P49

依存の注入ポイントとなる型(Interface)を明言した方が良さそう。Interfaceと実装が1対1であれば必ず限定できるけど、それだと何のためにDI使っているのか、という話になってしまう。また同じく複数の型(Interfaceや抽象クラス)から具象化されるクラスが意図せず1つという状態になるのも良くない。少なくともScopeを限定している具象クラスにおいては論理的に1対1しておいた方が良い。

なおテストを考えても@Typedを使った方が良い。

CDIでコンストラクタインジェクションしたい - CLOVER

JavaSE環境

依存ライブラリが極力少ない方が良いと思うけど、CDIは使った方が良いと思う。JavaEEだけじゃなくてJavaSEでも。

JavaSE 環境でCDI(Weld)を使う - Qiita