自从Java EE 5没有CDI,那么在这里DI是如何工作的呢?一个非EJB类是否可以使用@EJB注入到EJB中?一个非EJB类是否可以使用@PersistenceContext注入EntityManager中(容器管理的而不是资源局部的EntityManager)?或者唯一的解决办法是通过JNDI查找将资源引入非EJB类中?在此处的非EJB类是指未注释为@Stateless/@Statefull或其他类型的类。
来源:http://www.oracle.com/technetwork/articles/javaee/injection-141192.html
请记住,只有在容器管理的组件(如EJB bean、Servlet和JavaServer Pages(JSP)技术标记处理程序)中使用时,Java EE 5平台容器才能透明地处理注入。
onjava有一篇文章:http://onjava.com/pub/a/onjava/2006/01/04/dependency-injection-java-ee-5.html
它提供了一个易于阅读的表格,显示每个容器支持注入什么类型资源的托管组件。
EntityManager
注入到它们的对象中的能力,但是应该相当简单地构建一个桥梁来让它们这样做,尽管本页空间太小,无法包含这方面的解释。 - Tom Anderson