技術メモブログ

技術ネタの備忘録的なブログ。技術ネタ以外にも気になったことをつらつら書きます

CDIについて その1

CDI(Contexts and Dependency Injection)

俗に言う「依存性の注入」ってやつ

有名なFWだと Spring とか Seasar あたりだろうか

(多分他にもあると思う)

 

 CDIは公式の以下ブログの内容を一通り読むと理解はできると思う

Java EE 6: Understanding Contexts and Dependency Injection (CDI), Part 1 (Nishigaya's Weblog)

Java EE 6: Understanding Contexts and Dependency Injection (CDI), Part 2 (Nishigaya's Weblog)

 

 

Part1の最初の説明で「beans.xml」が必須と説明がされているが、

Java EE 7では ファイルを作る必要はない

 

作らない代わりに、アノテーションの設定が必要

以下、 Injection のサンプル

 

 

InjectSamp1Servlet の service プロパティに、 InjectSamp1Service が注入されるもの。

Service クラスに「@RequestScoped」アノテーション(スコープのアノテーション)を付与することで、「beans.xml」を不要とすることができる。

  

この「beans.xml」、JavaEE6 までは Interceptor とかいろんな機能を使う場合にファイルに設定を書く必要があった。

しかし、上記で言っているように、JavaEE7からはアノテーションを付与することで不要となったので、積極的にアノテーションを使っていくのがいいと思う。

ちなみに、ファイル、アノテーションと両方で設定を行った場合、ファイルの設定が優先される。