我和一个 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/