@EJB注释的beanName属性指定EJB的类名(不带包名),他的另一个属性mappedName指定Bean实例的JNDI名。
public class InjectionBean implements Injection {
@EJB (beanName="HelloWorldBean")
//@EJB (mappedName="HelloWorldBean/remote")
HelloWorld helloworld;
…
@EJB 注释如果被用在JavaBean风格的setter 方法上时,容器会在属性第一次使用之前,自动地用正确的参数调
用bean的setter 方法。下面的片断演示了这是如何做的
public class InjectionBean implements Injection {
HelloWorld helloworld;
@EJB (beanName="HelloWorldBean")
public void setHelloworld(HelloWorld helloworld) {
this.helloworld = helloworld;
}
…
@EJB 注释只能注入EJB存根对象,除@EJB 注释之外,EJB 3.0 也支持@Resource注释来注入来自JNDI 的任何
资源。
如果JNDI 对象在本地(java:comp/env)JNDI目录中,你只需给定他的映谢名称即可,不需要带前缀,如下面例子注
入一个消息connection factory和一个messaging queue
@Resource (mappedName="ConnectionFactory")
QueueConnectionFactory factory;
@Resource (mappedName="queue/A")
Queue queue;
Jboss将根据编号按从小到大的顺序发布jar文件。