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


199

我可以知道之间有什么区别吗?

  1. 弹簧
  2. 支柱
  3. 支柱2
  4. 冬眠
  5. JavaServer Faces
  6. JavaServer页面
  7. 挂毯

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

谢谢。

Answers:


267
  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是一个很好的堆栈。

也可以看看


2
我想指出的是,在这种比较上下文中,有些人还使用Spring一词来指代其自己的MVC框架(比Struts IMO更好)。
MetroidFan2002

很好地解释了,但仍然太技术性了。我建议您用外行术语解释一下。无论如何,最后的链接都做到了。
noob

答案的确是一个很好的起点,但可以通过解释引入的主要概念(基于请求的框架与基于组件的框架,IoC容器,表示形式与持久性框架...)加以改进,从目前的情况来看,它还需要很多其他补充糊涂,但这仍然是一个很好的答案,也是一个很好的起点!赞成。
Wouter

19

通常...

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

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

Struts2提供基于动作的编程。有很多Struts标签。Struts证明了基于动作的编程,因此您必须维护视图的所有相关控件。

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


7

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


4

Spring是一个处理IOC(控制反转)的应用程序框架。

Struts 2是处理动作的Web应用程序MVC框架。

休眠是一个处理持久数据的ORM(对象关系映射)。


3

简而言之,

Struts用于网站的前端开发

Hibernate用于网站的后端开发

Spring用于网站的全栈开发,其中Spring MVC(Model-View-Controller)用于前端。ORM,用于数据访问/集成(后端)的JDBC。等等


2

在休眠状态下,您无需担心如何在SQL中创建表,也不必记住连接,连接语句(如数据保留在数据库中)。因此,基本上,它使开发人员的生活变得轻松。


2

Spring Rod Johnson在2003年创建的轻量级开源框架。Spring是一个完整的模块化框架,Spring框架可以用于实时应用程序的所有层实现,也可以使用spring进行特定层的开发。实时应用程序。

Struts是用于开发Java EE Web应用程序的开源Web应用程序框架。它使用并扩展了Java Servlet API,以鼓励开发人员采用模型视图控制器(MVC)架构。它最初由 Craig McClanahan创建,并于2000年5月捐赠给Apache基金会。

下面列出的是Spring和Strut Framework之间的差异比较表

在此处输入图片说明



0

SpringStrutsHibernate之间的区别如下:

  1. Spring是一个应用程序框架,但Struts和Hibernate不是。
  2. Spring和Hibernate的权重很轻,而Struts 2则没有。
  3. Spring和Hibernate具有分层的体系结构,但Struts 2没有。
  4. Spring和Hibernate支持松散耦合,但Struts 2不支持
  5. Struts 2和Hibernate具有标签库,而Spring没有。
  6. Spring和Hibernate可以轻松地与ORM技术集成,但是Struts却没有。
  7. Struts 2可以轻松地与客户端技术集成,而Spring和Hibernate则没有。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.