注释@EJB的name,beanName和mappedName属性之间有什么区别?

时间:2014-12-29 06:52:00

标签: java-ee jboss ejb-3.0

EJB3.0中注释name的{​​{1}},beanNamemappedName属性有什么区别?
我在网上发现了这个链接 - http://www.tutorialspoint.com/ejb/ejb_annotations.htm

  • @EJB - 用于指定 name ,它将用于在环境中找到引用的bean
  • name - 用于提供引用的bean的名称
  • beanName - 用于指定 引用的bean JNDI名称

mappedNamename属性中的名称有何不同?

1 个答案:

答案 0 :(得分:3)

@EJB声明从组件到目标EJB的EJB引用。 name是组件环境中引用的关键。有几种方法可以指定目标EJB:

  1. 如果EJB与您的组件位于同一个应用程序中,则beanName(或XML中的<ejb-link>可用于指定目标EJB
  2. mappedName是一个不可移植的特定于供应商的字符串(即使它是标准的一部分!),它以某种方式识别目标。
  3. 在EJB 3.1中,lookup是一种可移植的方式来指定目标的JNDI字符串。
  4. 特定于供应商的机制,例如绑定文件。
  5. 如果没有使用其他任何机制,那么javadoc表示@EJB将针对实现目标类型的同一应用程序中的EJB(如果只有一个)。