Spring,Struts,Hibernate,JavaServer Faces,Tapestry有什么区别?

CMW*_*CMW 197 java frameworks java-ee

我可以知道之间有什么区别: -

  1. 弹簧
  2. 支柱
  3. Struts 2
  4. 过冬
  5. JavaServer Faces
  6. JavaServer Pages
  7. 挂毯

这些技术/框架是否相互补充?或者它们是彼此的替代品(在我使用其中一个之后,我不需要使用另一个)?

谢谢.

Pas*_*ent 265

  1. Spring是一个IoC容器(至少是Spring的核心),用于使用依赖注入来连接东西.Spring提供其他服务,如事务管理和各种其他技术的无缝集成.
  2. Struts是一个基于动作的表示框架(但不要将它用于新的开发).
  3. Struts 2是一个基于动作的表示框架,上面的版本2(由WebWork与Struts合并而成).
  4. Hibernate是一个对象关系映射工具,一个持久性框架.
  5. JavaServer Faces是基于组件的表示框架.
  6. JavaServer Pages是视图所有提到的表示框架使用的视图技术.
  7. Tapestry是另一个基于组件的表示框架.

所以,总结一下:

  • Struts 2,JSF,Tapestry(以及Wicket,Spring MVC,Stripes)是演示框架.如果您使用其中一个,则不使用其他.
  • Hibernate是一个持久性框架,用于在关系数据库中持久化Java对象.
  • Spring可用于将所有这些连接在一起并提供声明式事务管理.

我不想让事情变得更加混乱,但请注意Java EE 6提供了上述框架的现代,标准化和非常好的等价物:JSF 2.0和Facelets用于演示,JPA 2.0用于持久性,依赖注入等.新开发,这是IMO的一个重要选择,Java EE 6是一个很棒的堆栈.

也可以看看

  • 我想指出,在这种比较上下文中,有些人还使用Spring这个词来引用它自己的MVC框架(这比Struts IMO好得多). (2认同)

Pra*_*att 18

通常...

Hibernate用于处理数据库操作.有一组丰富的数据库实用程序功能,可以减少代码行数.特别是你必须阅读hibernate的@Annotation.它是一个ORM框架和持久层.

Spring提供了一套丰富的基于注入的工作机制.目前,春天是众所周知的.您还必须阅读有关Spring AOP的信息.Struts和Hibernate之间有一座桥梁.主要是Spring提供这种实用程序.

Struts2提供基于动作的编程.有一组丰富的Struts标签.Struts证明了基于动作的编程,因此您必须保持视图的所有相关控制.

另外,Tapestry是Java的不同框架.您只需处理.tml(模板文件).您必须为任何类创建两个主文件.一个是JAVA类,另一个是它的模板.两个名字都是一样的.Tapestry自动调用相关的类.


Sri*_*ddi 7

您可以在此处查看自己的概述和排名.Hibernate是一个ORM,因此您可以使用struts + Hiberante或spring + hibernate来构建Web应用程序.不同的Web框架和许多是彼此的替代方案.