What is therelationship between @EJB and ejb-ref/ejb-local-ref?

本文对比了 Java EE 中 @EJB 注解与 ejb-ref/ejb-local-ref XML 元素的功能及使用场景,详细解释了二者如何表示组件间的依赖关系,并提供了属性对照表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://glassfish.java.net/javaee5/ejb/EJB_FAQ.html

What is therelationship between @EJB and ejb-ref/ejb-local-ref?


The  @EJB  annotationand the  ejb-ref/ ejb-local-ref  .xmlelements are used to specify the same semantic information.  Specifically, that a Java EE component has adependency on a local or remote EJB component.  Every  @EJB  canbe translated into an equivalent  ejb-ref/ ejb-local-ref  @EJB  iseasier to use but it serves the same purposeas  ejb-ref/ ejb-local-ref Here's a table with more details :

@EJB attribute
Description
Default value
ejb-refequivalent
ejb-local-refequivalent
name
Unique location within the private component namespace(java:comp/env). 
field-level : <fully-qualifiedname of declaringclass>/<field-name>

method-level : <fully-qualifiedname of declaring class>/<propertyname>

class level : name isrequired.  
ejb-ref-name


ejb-ref-name


beanInterface
For EJB 3.x business interfaces, the Local or Remote businessinterface of the session bean.

For EJB 2.x, the Home/LocalHome interface of the session/entitybean.
field-level : the type of the declared field.

method-level : the type of the single setter parameter

class level : beanInterface isrequired.


For EJB 3.x :<remote>

For EJB 2.x :
<home>
For EJB 3.x : 
<local>

For EJB 2.x :
<local-home>
beanName
ejb-name (not global JNDI name)of the target ejb component within the application.  This can be used whenever the target ejbcomponent is defined within the same application as the referencingcomponent, regardless of local vs. remote.   Theonly time it can't be used is if the @EJB refersto a Remote interface (3.x or 2.x) that is defined outside theapplication.  
Automatically resolved if there is only one EJB component withinthe application that exposes  the valueof beanInterface
ejb-link
ejb-link
lookup

*(Added in EJB 3.1)
Specifies the portable JNDI nameof the target EJB component to whichthis @EJB dependencyrefers.   This should be usedinstead of mappedName incases where an @EJB dependencyneeds to be resolved to a Remote EJB component defined in adifferent application.  It can also be used tochain one @EJB dependencyto another @EJB dependency. 
n/a
lookup-name
lookup-name
mappedName
Specifies the product-specific name of the target Remote EJBcomponent.  For GlassFish, this refers to theglobal JNDInameof the target Remote EJB component.  

Not applicable for local interfacesbecause beanName canalways be used instead.

*(Should not be used in EJB 3.1. See lookup instead)
If the target EJB component is defined within the same applicationand the beanNamedefaultapplies, no additional mapping is required.

Otherwise, the target global JNDI namewill be set to the value of beanInterface 
mapped-name
n/a




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值