CDI, Context and Dependency Injection, est une nouveauté majeure de Java EE 6. Java EE 5 ne permet l'injection que d'EJB et de ressources gérées par le serveur d'application. En comparaison de Spring Framework, cette version de la spécification manque cruellement de souplesse.
CDI permet d'injecter des composants plus variés et propose des techniques d'événements, d'interception ou de décoration. CDI devient donc un élément essentiel de JavaEE.