注入我想知道是否我有一个远程接口MyService
和相应的实现EJB MyServiceBean
我仍然可以注入一个使用@EJB
批注的bean实例到其他ejbs或从运行在同一应用程序服务器上的jsf管理bean。远程接口视图ejb仍然可以使用@EJB
如果是这样的话,我必须把注释放在界面上还是在实现上? E.g:
@EJB
private MyService myService;
或
@EJB
private MyServiceBean myService;
注入我想知道是否我有一个远程接口MyService
和相应的实现EJB MyServiceBean
我仍然可以注入一个使用@EJB
批注的bean实例到其他ejbs或从运行在同一应用程序服务器上的jsf管理bean。远程接口视图ejb仍然可以使用@EJB
如果是这样的话,我必须把注释放在界面上还是在实现上? E.g:
@EJB
private MyService myService;
或
@EJB
private MyServiceBean myService;
如果您所访问的同一JVM中的EJB内从客户端的EJB,远程接口不用。远程接口由驻留在EJB部署的JVM外部的EJB客户机使用。因此,在您的特定情况下,所有你需要的是
@EJB
private MyServiceBean myService;
使用在你的情况下,远程接口注入机制会导致不必要的往返在获得相同的结果。
的使用情况不同的EJB调用模式
@Remote
:表示一个远程业务接口。方法参数是按值传递 和需要是可序列化的RMI协议的一部分
@Local
(Apress出版的初级Java EE6平台引用):表示一个本地业务接口。方法参数通过引用 从客户端传递到bean(引用自Apress'开始的Java EE6平台)
无:这是没有指定接口的普通注入类型。在与EJB相同的JVM中,这很好。从视图(松耦合原则)设计的时候,您可能希望使用@Local
注射方法
不要紧,你是怎么获得的当地或远程企业Bean引用@EJB
。使用注释
@EJB
ExampleBean exampleBean;