Javaのベンダー公式フレームワークであるJava EEでは、DI(Dependency Injection)の仕様である CDI(Context and Dependency Injection for Java EE)が提供されています。 CDIはJava EEでアプリケーションを開発する上で避けては通れませんが、それ自体が複雑なのに加え、 仕様が複数にまたがっていて理解するのが難しいです。 そのため、CDI使う上で理解する必要のある重要な概念や基本的な使い方、 はまりポイントなどをまとめていきます。 この記事は基本的な使い方、概念についての解説なので、CDIや周辺仕様を全て網羅していません。その点はご了承ください。 なお、本記事で使用するのは、最新のCDI1.2ではなく、Java EE7の一部であるCDI1.1になります。 また、Spring, Seasar2などの経験があることを前