Jakarta ee 远程接口视图ejb仍然可以使用@ejb注入吗

Jakarta ee 远程接口视图ejb仍然可以使用@ejb注入吗,jakarta-ee,ejb,Jakarta Ee,Ejb,我想知道我是否有一个远程接口MyService和相应的实现EJBMyServiceBean我是否仍然可以使用@EJB注释将一个bean实例注入运行在同一应用服务器上的其他EJB或来自jsf的托管bean 如果是这种情况,我是否必须将注释放在接口或实现上?例如: @EJB private MyService myService; 或 如果您是从与EJB位于同一JVM中的客户机访问EJB,则不需要远程接口。远程接口由驻留在部署EJB的JVM之外的EJB客户端使用。所以在你的特殊情况下,你所需要的就

我想知道我是否有一个远程接口
MyService
和相应的实现EJB
MyServiceBean
我是否仍然可以使用
@EJB
注释将一个bean实例注入运行在同一应用服务器上的其他EJB或来自jsf的托管bean

如果是这种情况,我是否必须将注释放在接口或实现上?例如:

@EJB
private MyService myService;


如果您是从与EJB位于同一JVM中的客户机访问EJB,则不需要远程接口。远程接口由驻留在部署EJB的JVM之外的EJB客户端使用。所以在你的特殊情况下,你所需要的就是

       @EJB
       private MyServiceBean myService;
在您的案例中使用远程接口注入机制将导致不必要的往返以获得相同的结果

不同EJB调用模式的用例如下

  • @Remote
    :表示远程业务接口。方法参数按值传递 并且需要作为RMI协议的一部分进行序列化

  • @Local
    :表示本地业务接口。方法参数通过引用传递 从客户端到bean。(引用自Apress的《JavaEE6平台入门》)

  • 无:这是未指定接口的普通注入类型。在与EJB相同的JVM中,这很好。从设计角度(松耦合原理)来看,您可能希望使用
    @Local
    注入方法


  • 如何获取本地或远程企业bean的引用
    @EJB
    ,并不重要。使用注释

    @EJB
    ExampleBean exampleBean;
    
    @EJB
    ExampleBean exampleBean;