【发布时间】:2016-11-29 19:09:06
【问题描述】:
我想在同一个 JVM(Weblogic 服务器实例)中拥有 EJB 的本地和远程接口是否可能以及如何实现。 调用 Local EJB 可以提高性能,因为使用了引用调用。
如果可能的话,如何在部署描述符中定义它(ej-jar.xml,weblogic-ejb-jar.xml
【问题讨论】:
标签: ejb
我想在同一个 JVM(Weblogic 服务器实例)中拥有 EJB 的本地和远程接口是否可能以及如何实现。 调用 Local EJB 可以提高性能,因为使用了引用调用。
如果可能的话,如何在部署描述符中定义它(ej-jar.xml,weblogic-ejb-jar.xml
【问题讨论】:
标签: ejb
当然,您可以同时拥有这两个接口,客户端将使用@Remote 或@Local,具体取决于它位于本地还是远程。
但关键是,正如您已经指出的那样,这两个接口的用途完全不同。
理论上,远程接口应该是粗粒度的,而本地接口应该是细粒度的。这种“粒度”是由对象在 JVM 内或 JVM 之间的传递方式以及网络问题驱动的。
为了简化(很多),通常使用 @Remote 接口传递 id 并在业务层重构对象,而使用 @Local 允许您传递整个对象作为引用。
因此,如果您同时实现这两种方法,请期望/设计您的 bean 以具有用于特定目的的不同方法集。
【讨论】: