EJB、冬眠、弹簧和 JSF 有什么区别?[已关闭]
我对不同的Java框架感到非常困惑。我想创建一个java服务器项目来提供一些Restful Web服务,但我真的不知道我应该选择哪个框架。JSF,EJB,Hibernate和Spring有什么区别?请帮助我更多地了解它们。
我对不同的Java框架感到非常困惑。我想创建一个java服务器项目来提供一些Restful Web服务,但我真的不知道我应该选择哪个框架。JSF,EJB,Hibernate和Spring有什么区别?请帮助我更多地了解它们。
这些是不同层的框架。
JSF用于视图(Web)层,它是一个面向组件的框架(页面的每个部分都是一个组件,它有状态),就像Wicket或Tapestry一样,与Spring MVC,Struts或Stripes等动作框架不同。
EJB 3.x 是 JavaEE 堆栈的一部分的容器。它执行依赖注入和Bean生命周期管理之类的操作。对于 EJB3,您通常需要一个完整的 JavaEE 应用程序服务器
教程:JavaEE 6 教程:EJB
书籍:EJB 3 在行动
Spring也是一个容器,但Spring可以在任何java代码(简单的主类,小程序,Web应用程序或JavaEE企业应用程序)中运行。Spring几乎可以做EJB能做的所有事情,而且更多,但我想说它最着名的是依赖注入和非侵入式事务管理。
在线参考(优秀)
书籍:我在Spring 3.x上找不到一本好的英文书,尽管有几本正在制作中
Hibernate是Java平台上第一个大型ORM(对象关系映射器),因此极大地启发了JPA(JPA是EJB3标准的一部分,但可以在没有EJB容器的情况下使用)。我建议针对JPA进行编码,并且仅使用hibernate作为提供者,这样您就可以轻松切换到EclipseLink等。
书籍:Pro JPA 2:掌握Java™ Persistence API(不是特定于Hibernate的),
Java Persistence with Hibernate(有点旧)
但是,如果你想做 REST,那么对你来说最重要的标准是 JAX-RS。您可以在Spring框架中使用它,也可以与EJB一起使用。对于持久性,您可以使用Hibernate或EJB容器(如Glassfish)的JPA实现。