| Author |
Resource Injection.
|
sasinda Rukshan
Greenhorn
Joined: Apr 01, 2011
Posts: 4
|
|
concider following entity manager factory injection.
<enterprise-beans>
<session>
<ejb-class>com.ex.A</ejb-class>
<ejb-name>BeanName</ejb-name>
<persistence-unit-ref>
<persistence-unit-ref-name>jndiname</persistence-unit-ref-name>
<injection-target>
<injection-target-class>com.ex.A</injection-target-class>
<injection-target-name>fieldName</injection-target-name>
</injection-target>
</persistence-unit-ref>
</session>
</enterprise-beans>
We have specified the <ejb-class> so why do we need to have a <injection-target-class> ?
|
SCJP, OCWCD, OCMAD, OCBCD
|
 |
Mihai Radulescu
Ranch Hand
Joined: Sep 18, 2003
Posts: 912
|
|
Hi Sasinda
The ejb-class represents the bean corresponding class for the a given environment and the injection-* represents the injection applying point.
More precisely, the ejb-class is used to declare entries in the bean context, all the bean instances from this type may use this entries (via JNDI calls) - please notice the "may use it"; there is no must this is just a declaration.
The injection-target-class is used to specify the injection application point - it means inject this instance in this field.
Even if both elements (ejb-class and injection-target-class) have the same meaning they are used in different contexts.
If you dislike to see the "class" in two places you can remove the <ejb-class> element and use <remote> or <local> with the implemented interface.
Regards,
Mihai
|
SCJP, SCJD, SCWCD
|
 |
sasinda Rukshan
Greenhorn
Joined: Apr 01, 2011
Posts: 4
|
|
|
Thanks.
|
 |
 |
|
|
subject: Resource Injection.
|
|
|