?
?1.前言
在EJB中也为我们提供了依赖注入的功能,关于什么是依赖注入,在此就不再多分析了。
?2.EJB注入
在EJB中注入一般使用的就是@EJB或者@EJBS,两者的区别莫过于注入的类可以实现多个接口。下面来看一下@EJB用到的属性。
beanInterface:该属性指定被注入EJB所实现的接口
name:该属性用于指定被注入Bean在JNDI ENC中注册项名称,该名称在不同应用服务器中可能存在差异。
beanName:该属性指定被注入EJB的名称,其值与被注入Bean中@StateLess.Name所指定的值相同。
mappedName:该属性指定被注入EJB的JNDI名。
?3.Demo展示
被注入的Bean实现类
package com.Injection;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless
@Remote (RemoteHello.class)
public class HelloBean implements RemoteHello{
public String SayHello(String name) {
return name+"?,HelloBean远程调用!";
}
}
注入类
package com.Injection;
import javax.ejb.EJB;
import javax.ejb.EJBs;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless
@Remote (Injection.class)
public class InjectionBean implements Injection {
@EJB (beanName="HelloBean")
RemoteHello helloworld;
public String SayHello() {
return helloworld.SayHello("你好吗");
}
}
?4.疑惑
做这个例子的时候,发现如果不提供set方法的话,也能够注入成功。不知道为何……………………