我和朋友正在构建一个基于java的相当复杂的网站。 (PHP本来会更明显,但我们选择了java,因为这个项目的教育方面对我们很重要)
我们已经决定将JSF(包含richfaces)用于前端,使用JPA用于后端,到目前为止,我们已决定不将EJB3用于业务层。
我们决定不使用EJB3的原因是 - 如果我错了请纠正我 - 如果我们使用EJB3,我们只能在像jboss这样的完整的java应用服务器上运行它如果我们不使用EJB3,我们仍然可以在像tomcat这样的轻量级服务器上运行它。我们希望记住未来Web服务器的速度和成本。
到目前为止,我已经完成了两个Java EE项目,并且都使用了完整的堆栈
每个图层都是一个单独的模块。
现在这是我的问题,如果你不在业务逻辑层使用EJB3。这层是什么样的?请问在没有ejb3的情况下开发java web项目时常见的做法是什么?您是否认为业务逻辑层可以完全抛出并在后台bean中具有业务逻辑?如果保留图层,是否所有业务方法都是静态的?或者,您是否根据需要在每个会话中根据需要初始化每个业务类?
答案 0 :(得分:2)
EJB3分为两层:
您可以使用相同的体系结构,而无需使用明确的EJB3。
JPA非常接近Hibernate。我们使用,并且更喜欢JPA。
注释来自JPA,但不需要容器,它不是真正的EJB。
Spring也非常接近EJB3的Business层。拥有更多功能...
有些人甚至说他们比EJB3更好!! ;-)他们说EJB3是从这两个解决方案创建的(但仍然必须在很多方面达到他们的水平!)。
答案 1 :(得分:1)
EJB在过去5年中得到了很多改进。特别是对于版本3,它们变得更轻量级。
Java EE 6有一个Web配置文件,甚至可以在tomcat服务器上运行Java EE堆栈。 http://www.oracle.com/technetwork/java/javaee/resources-jsp-139799.html
此外,可以在tomcat上安装所有必需的组件: http://tomee.apache.org/apache-tomee.html
我有一个示例项目,包括github上的EJB,它们展示了如何使用它们:
https://github.com/ManuelB/facebook-recommender-demo
此外,我会推荐Adam Bien的截屏视频: http://www.adam-bien.com/roller/abien/
如果重新部署时间是您不使用EJB的原因,那么您应该查看: http://zeroturnaround.com/software/jrebel/
要仍然回答您的问题,您应该将以下Java Web框架作为EJB替代方案进行研究:
答案 2 :(得分:0)
不使用EJB的人通常使用Spring或其他依赖注入框架。 JSF允许您创建bean并将它们连接在一起,但是最好只将它用于UI并将Spring用于业务层。有很多信息可用于将JSF与Spring集成。