没有EJB3,java web项目架构如何?

Hen*_*rik 5 java architecture web-applications java-ee ejb-3.0

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

我们已经决定在前端使用JSF(包含richfaces),在后端使用JPA,到目前为止我们已决定不使用EJB3作为业务层.

我们决定不使用EJB3的原因是 - 如果我错了请纠正我 - 如果我们使用EJB3,我们只能在像jboss这样的完整的java应用服务器上运行它,如果我们不使用EJB3,我们可以仍然在像tomcat这样的轻量级服务器上运行它.我们希望记住未来Web服务器的速度和成本.

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

  • 卷筒纸
  • 商业逻辑
  • 工厂/坚持服务
  • 实体

每层都有一个单独的模块.

现在这是我的问题,如果你不在业务逻辑层使用EJB3.这层是什么样的?请问在没有ejb3的情况下开发java web项目时常见的做法是什么?您是否认为业务逻辑层可以完全抛出并在后台bean中具有业务逻辑?如果保留图层,是否所有业务方法都是静态的?或者您是否根据需要在每个会话中根据需要初始化每个业务类?

KLE*_*KLE 2

EJB3分为两层:

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

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

坚持

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

注释来自 JPA,但不需要容器,它不是真正的 EJB。

商业

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


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