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方法的话,也能够注入成功。不知道为何……………………