我是Java EE的新手,没有获得EJB的接口部分。有人可以帮忙说明为什么我们需要一个会话bean的两个接口(Home和Remote)?一个接口是否足以像在RMI中那样调用远程ejb?
答案 0 :(得分:1)
home是EJB引用的工厂。在EJB 3.0+中,替换家庭使用JNDI作为工厂。使用房屋有一些好处:
我有时希望通用的javax.ejb.EJBFactory< T> EJB 3接口存在接口,以解决其中的一些问题。
答案 1 :(得分:0)
回到J2EE时代,我们想到了在应用程序中使用的分布式企业bean。
虽然这仍然有可能,但通常不会使用远程功能。您可以将bean本地放在同一容器中,也可以使用某种Web服务(SOAP或REST)。
这就是为什么在Java EE 6中他们引入了No-Interface视图的原因之一,因为这是大多数情况下的有效方法。您可以实现您的ejb并且根本没有接口。
尽管如此,您仍然可以拥有@Local
或@Remote
界面。如果您打算将bean的功能暴露给外部,那么拥有一个远程接口是有意义的。如果您始终使用远程视图,即使您在本地调用它们,也会不必要地完成整个堆栈。