一尘不染

EJB,hibernate,spring和JSF之间有什么区别?

hibernate

我对不同的Java框架感到非常困惑。我想创建一个Java服务器项目来提供一些Restful
Web服务,但是我真的不知道我应该选择哪种框架。JSF,EJB,Hibernate和Spring有什么区别?请帮助我更多地了解它们。


阅读 262

收藏
2020-06-20

共1个答案

一尘不染

这些是不同层的框架。

  • JSF 用于视图(Web)层,它是一个像Wicket或Tapestry这样的面向组件的框架(页面的每个部分都是一个组件,都有状态),与Spring MVC,Struts或Stripes等Action框架不同

书籍: Core JavaServerFaces(第3版)
教程:CoreServlets.com

  • EJB 3.xJavaEE堆栈的一部分的容器。它执行诸如依赖注入和bean生命周期管理之类的事情。对于EJB3,通常需要一台完整的JavaEE应用程序服务器。

教程:JavaEE
6教程:EJB

书籍:EJB 3的实际应用

  • Spring 还是一个容器,但是Spring可以在任何Java代码中运行(一个简单的主类,一个applet,一个Web应用程序或一个JavaEE企业应用程序)。Spring几乎可以完成EJB可以做的所有事情,甚至还有更多,但是我想说它以依赖注入和非介入式事务管理而闻名。

在线参考(优秀)
书籍:尽管有几本正在制作中,但我在Spring 3.x上找不到很好的英语书籍

  • Hibernate 是Java平台上的第一个大型ORM(对象关系映射器),因此极大地启发了 JPAJPA 是EJB3标准的一部分,但可以在没有EJB容器的情况下使用)。我建议对JPA进行编码,并且仅使用hibernate作为提供程序,这样您就可以轻松切换到EclipseLink等。

书籍:Pro JPA 2:精通Java™Persistence
API
(非特定
于Hibernate),Java
Persistence与Hibernate
(有点陈旧)

2020-06-20