创建企业 Java EE 应用程序时,必须将部分业务逻辑(如消息传递 (MDB))放入 EJB 模块中。但是,有些 EJB 可以放置在 EJB 模块或 Web 模块中。我知道分离模块允许将 Web 层和业务层部署在不同的机器上。因此,我会将我的@Stateful
购物车 EJB 放在 web 模块中。但是,我想不出一个可以应用于每个业务逻辑的标准标准,以决定将 EJB 放在哪里来封装它们。对此是否有指导方针、标准或推荐做法?
问问题
1972 次
2 回答
1
这是我到目前为止所发现的。
EJB 模块应该包含大型企业应用程序的业务逻辑核心。另一方面,Web 模块包含一个成熟的 Web 应用程序,该应用程序应该利用 EJB 模块提供的业务引擎。通常这些模块分布在不同的服务器上,用于较大的应用程序,并且除了 Web 应用程序之外,还有客户端应用程序(例如 Swing/JFX 桌面应用程序)需要使用驻留在 EJB 模块中的核心业务逻辑提供的服务。
换句话说,如果出现以下情况,可以将业务逻辑放在单独的 EJB 模块中:
- 它旨在供多个 Web 或桌面应用程序使用,或
- 扩展考虑可能会迫使核心业务逻辑由单独的服务器处理
在其他情况下,可以将他的 EJB 放在 Web 模块中,并将整个内容打包为 WAR 文件。
于 2012-11-03T19:57:47.747 回答
1
正如您在最后一句话中所说,这正是我的建议:对 JEE6 应用程序使用 WAR 包装,因为在大多数情况下您不需要 EAR。
如果您需要在多个应用程序之间共享业务逻辑,则可以将其部署为单独的模块。但是出于扩展的原因,通常不需要这样的事情,因为您也可以相应地确定运行 WAR 的应用程序服务器的大小。
于 2012-11-04T12:22:03.810 回答