java - 没有 EJB3 的 Java Web 项目架构是什么样子的?

标签 java architecture web-applications jakarta-ee ejb-3.0

我和一个 friend 正在构建一个基于 java 的相当复杂的网站。 (PHP 会更明显,但我们选择了 java,因为这个项目的教育方面对我们很重要)

我们已经决定在前端使用 JSF(带有 richfaces),在后端使用 JPA,到目前为止我们还决定不在业务层使用 EJB3。

我们决定不使用 EJB3 的原因是 - 如果我错了请纠正我 - 如果我们使用 EJB3,我们只能在像 jboss 这样的成熟的 java 应用程序服务器上运行它如果我们不使用 EJB3,我们仍然可以在像 tomcat 这样的轻量级服务器上运行它。我们希望牢记 future 网络服务器的速度和成本。

到目前为止,我已经参与了两个 Java EE 项目,并且都使用了完整的堆栈

  • 网络
  • 业务逻辑
  • 工厂/持久性服务
  • 实体

每一层都是一个单独的模块。

现在我的问题是,如果您不在业务逻辑层中使用 EJB3。图层是什么样子的?请告诉我在没有ejb3 的情况下开发java web 项目的常见做法是什么?您认为可以完全抛弃业务逻辑层并在支持 bean 中包含业务逻辑吗?如果保留该层,是否所有业务方法都是静态的?还是在每个session中的backing beans中按需初始化每个业务类?

最佳答案

EJB3 分为两层:

  • 持久性(JPA、旧实体 bean)
  • 业务逻辑(旧 session bean)

您可以拥有相同的体系结构,而无需明确使用 EJB3。

坚持

JPA 与 Hibernate 非常接近。我们使用 JPA,并且更喜欢它。

The annotations come from JPA, but there is no need for a container, it's not really EJB.

商业

Spring 也非常接近 EJB3 的业务层。具有更多功能...


有些人甚至说它们比 EJB3 更好!! ;-) 他们说 EJB3 是从这两个解决方案创建的(但在许多方面仍然必须达到他们的水平!)。

关于java - 没有 EJB3 的 Java Web 项目架构是什么样子的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1486902/

相关文章:

java - xwork和xwork-core的冲突

java - 多线程环境中跨整个应用程序的变量的单个实例

architecture - 域层将 "call out"发送到 UI 的最佳方式是什么

javascript - 如何拆分我的 Web 应用程序?

c# - WPF - MVVM 架构(Visual Studio 解决方案和项目)

javascript - Angular 1.x 应用程序迁移到 Angular 5

java - 在 web.xml 中存储变量的目的?

java - 将 jtextfield 的值插入数据库,

c# - 滚动到底部列表框 Silverlight 时加载更多数据而不是 WP7

java - FontAwesome 图标不会显示在 Android 应用程序上