Jakarta ee EJB企业应用程序不';不需要EJB接口

Jakarta ee EJB企业应用程序不';不需要EJB接口,jakarta-ee,interface,ejb,Jakarta Ee,Interface,Ejb,我创建了一个JavaEE应用程序,并向EJB项目添加了一个无状态会话bean。EJB项目是web/WAR项目中的一个依赖项,我将在EJB项目中创建的EJB注入到我的一个servlet中。这很好,我能够在web应用程序项目的servlet中部署和调用此EJB的方法。我的困惑是,我认为EJB必须在EJB容器中有一个接口,它们要么是本地的,要么是远程的。然而,在我的示例中,我根本不需要接口,并且能够在我认为至少需要本地接口的地方直接调用EJB 自从EJB3.1以来,本地服务不再需要EJB接口。任何带有

我创建了一个JavaEE应用程序,并向EJB项目添加了一个无状态会话bean。EJB项目是web/WAR项目中的一个依赖项,我将在EJB项目中创建的EJB注入到我的一个servlet中。这很好,我能够在web应用程序项目的servlet中部署和调用此EJB的方法。我的困惑是,我认为EJB必须在EJB容器中有一个接口,它们要么是本地的,要么是远程的。然而,在我的示例中,我根本不需要接口,并且能够在我认为至少需要本地接口的地方直接调用EJB

自从EJB3.1以来,本地服务不再需要EJB接口。任何带有@Stateless@Stateful@Singleton注释的POJO类都将是企业会话bean

回到自然契约,类的契约包括所有 它的公共方法。公共方法将由以下人员使用: 他们的客户。企业JavaBeans 3.1的无接口视图 bean的定义与EJB3.1的第3.4.4章完全相同 规范(JSR 318):

“…会话Bean的无接口视图是本地视图的变体 它公开bean类的公共方法,而不使用 单独的业务接口……”

所有私有方法都是隐藏的。具有包私有和 受保护的可见性仅对同一包中的类可见 它们通常仅用于测试目的。JUnit测试 类与“测试中的类”(CUT)和 模拟不方便的引用,通常访问 直接打包私有或受保护字段


检查:

谢谢,我不知道这个变化。还是创建本地接口更好吗?如果没有接口视图的功能与本地接口视图相同,那么本地接口有什么意义呢?一旦有了远程接口,如果要在本地使用会话bean,就需要指定一个本地接口。如果不远程公开bean,我认为不需要创建本地bean。