我创建了一个 Java EE 应用程序并向 EJB 项目添加了一个无状态会话 bean。 EJB 项目是 web/WAR 项目中的依赖项,我将在 EJB 项目中创建的 EJB 注入到我的一个 servlet 中。这工作正常,我能够在 Web 应用程序项目的 servlet 中部署和调用此 EJB 的方法。我的困惑是,我认为 EJB 必须在 EJB 容器中具有一个接口,它们要么是本地的,要么是远程的。然而,在我的示例中,我根本不需要接口,并且能够在我认为至少需要本地接口的地方直接调用 EJB?
从 EJB 3.1 开始,您不再需要本地服务的 EJB 接口。任何带有注释的 POJO 类@无状态, @有状态 or @辛格尔顿将是一个企业会话 bean。
回到自然契约 一个类的契约包括所有
它的公共方法。公共方法旨在供以下人员使用
他们的客户。 Enterprise JavaBeans 3.1 的无接口视图
bean 的定义如下,在 EJB 3.1 的第 3.4.4 章中
规范(JSR 318):
“……会话 Bean 的无接口视图是本地视图的变体
公开 bean 类的公共方法,而不使用
独立的业务界面……”
所有私有方法都是隐藏的。具有包私有的方法和
受保护的可见性仅对同一包中的类可见
通常仅出于测试目的访问它们。 JUnit 测试
类与“被测类”(CUT) 位于同一个包中,并且
模拟出不方便的参考,通常访问
直接包私有或受保护的字段。
Check: http://www.oracle.com/technetwork/articles/java/intondemand-1444614.html http://www.oracle.com/technetwork/articles/java/intondemand-1444614.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)