@EJB注释的总结由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“学习ejb笔记”。
SB InjectionBean
G:/dev/ws/SB/src/com/foshanshop/ejb3/Hello.java
G:/dev/ws/SB/src/com/foshanshop/ejb3/Injection.java
G:/dev/ws/SB/src/com/foshanshop/ejb3/impl/HelloBean.java G:/dev/ws/SB/src/com/foshanshop/ejb3/impl/InjectionBean.java
InjectionBean.java
package com.foshanshop.ejb3.impl;
import com.foshanshop.ejb3.Injection;
import com.foshanshop.ejb3.Hello;
import javax.ejb.Statele;
import javax.ejb.Remote;
import javax.ejb.EJB;
@Statele
@Remote(Injection.cla)
public cla InjectionBean implements Injection{
@EJB(beanName=“HelloBean”)Hello hello;
public String SayHello()
{
return hello.SayHello(“注入者”);
}
}
@EJB注释的name(), beanName(), mappedName()属性
1.不带任何属性使用
如:@EJB Hello hello;
当Hello接口在EJB-JAR文件内只被一个Bean cla使用时,可以这样引用,那么 容器是如何解析这一引用的呢?以下JBOSS的解析引用
・对于@EJB Hello hello而言,唯一的标识符是Hello接口,JBOSS应用服务器首 先在注入的EJB-JAR中查找使用Hello作为其本地或远程接口的EJB.如果有多个 EJB使用Hello业务接口,则容器会抛出一个部署异常。
・如果EJB-JAR作为EAR的一个模块被部署,那么容器就会在其EAR中包含的 EJB-JAR中查找使用Hello作为本地或远程接口的EJB。同样,如果有多个EJB使用 Hello业务接口,则容器会抛出一个部署异常。
・如果容器没有在EAR中找到该EJB引用,则它会在其他的全局EJB-JAR中继续查找。
・如果指定了beanName()属性,JBOSS同样的查找过程,但是它所使用的唯一标 符识将是beanName()的值,如果指定了mappedName()属性,则JBOSS将不会 进行任何搜索,他根据mappedName()的值在全局JNDI中获取EJB引用。