jakarta-ee - 在 Java EE 企业应用程序中将业务逻辑放在哪里

标签 jakarta-ee ejb ejb-3.0 java-ee-6 business-logic

创建企业 Java EE 应用程序时,必须将部分业务逻辑(例如消息传递 (MDB))放入 EJB 模块内。但是,有一些 EJB 可以放置在 EJB 模块或 Web 模块内。我知道,分离模块可以让Web层和业务层部署在不同的机器上。因此,我会将我的 @Stateful 购物车 EJB 放置在 Web 模块中。然而,我无法想出一个可以应用于每一个业务逻辑的标准标准,来决定将包含它们的 EJB 放在哪里。有这方面的指南、标准或推荐做法吗?

最佳答案

这是我迄今为止发现的。

EJB 模块应该包含大型企业应用程序的业务逻辑核心。另一方面,Web 模块包含一个成熟的 Web 应用程序,该应用程序应该利用 EJB 模块提供的业务引擎。通常,对于较大的应用程序,这些模块分布在不同的服务器上,并且除了 Web 应用程序之外,还有客户端应用程序(例如 Swing/JFX 桌面应用程序)需要使用驻留在 EJB 模块中的核心业务逻辑提供的服务。/p>

换句话说,如果满足以下条件,则可以将业务逻辑放在单独的 EJB 模块中:

  1. 它旨在供多个网络或桌面应用程序使用,或者
  2. 扩展方面的考虑可能会迫使核心业务逻辑由单独的服务器处理

在其他情况下,人们可以将其 EJB 放入 Web 模块中并将整个内容打包为 WAR 文件。

关于jakarta-ee - 在 Java EE 企业应用程序中将业务逻辑放在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13094417/

相关文章:

java - EJB3 和 JAAS 主题/主体如何从 servlet 容器传播到 EJB 层?

java - 在 Java EE 中绘制 google 图表

java - 使用 JAX-WS 提取整个 SOAP 消息

java - 将 @Resource UserTransaction 注入(inject) EJB Singleton bean 是否安全

java - 如何创建非持久性 EJB 3.1 计时器?

jboss - EJB 到 SEAM 组件(不同的项目和相同的 JBoss)

java - 处理循环的 EJB 事务超时

java - 将 SocketHubAppender 用于部署在 Tomcat 中的 Web 应用程序

java - EE 6 JSF EL 中的 Java 是否有相当于 '==' 的值

java - Sonar 违规在此操作系统命令中使用之前已正确清理