这些是不同层的框架。
- JSF 用于视图(Web)层,它是一个像Wicket或Tapestry这样的面向组件的框架(页面的每个部分都是一个组件,都有状态),与Spring MVC,Struts或Stripes等Action框架不同
书籍: Core JavaServerFaces(第3版)
教程:CoreServlets.com
- EJB 3.x 是JavaEE堆栈的一部分的容器。它执行诸如依赖注入和bean生命周期管理之类的事情。对于EJB3,通常需要一台完整的JavaEE应用程序服务器。
教程:JavaEE
6教程:EJB
书籍:EJB 3的实际应用
- Spring 还是一个容器,但是Spring可以在任何Java代码中运行(一个简单的主类,一个applet,一个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与Hibernate(有点陈旧)



