问题
Since Java EE 5 does not have CDI, how does DI work in here?
Can an EJB be injected with @EJB
in a class that is a non-EJB?
Can an EntityManager
be injected with @PersistenceContext
in a class that is a non-EJB (container managed not resource local EntityManager
)? Or the only solution to bring the resources in non-EJB classes is by JNDI lookup?
By non-EJB class I mean a class that is not annotated with @Stateless
/@Statefull
or others.
回答1:
Taken from: http://www.oracle.com/technetwork/articles/javaee/injection-141192.html
Keep in mind that a Java EE 5 platform container can handle the injections transparently only when they are used on container-managed components, such as EJB beans, Servlets, and JavaServer Pages (JSP) technology tag handlers.
onjava has an article: http://onjava.com/pub/a/onjava/2006/01/04/dependency-injection-java-ee-5.html
It presents a readable table of which managed-components (per container) that support injection of what type of resources.
来源:https://stackoverflow.com/questions/13530409/java-ee-5-dependency-injection