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

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

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

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

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

  • 每层都有一个单独的模块。

    现在,如果您不在业务逻辑层中使用EJB3,这就是我的问题。该层是什么样的?请说明在不使用ejb3的情况下开发Java Web项目时的常见做法是什么?您是否认为业务逻辑层可以被完全淘汰,并且在后备bean中包含业务逻辑?如果保留该层,是否所有业务方法都是静态的?还是根据需要在每个 session 的后备bean中根据需要初始化每个业务类?

    最佳答案

    EJB3分为两层:

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

  • 您可以具有相同的体系结构,而无需显式使用EJB3。
    持久性
    JPA与Hibernate非常接近。我们使用它,并且比JPA更喜欢它。

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

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

    09-05 16:16