ChatGPT解决这个技术问题 Extra ChatGPT

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

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

Spring Struts Struts 2 Hibernate JavaServer Faces JavaServer Pages Tapestry

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

谢谢。


C
Community

Spring 是一个 IoC 容器(至少是 Spring 的核心),用于使用依赖注入来连接事物。 Spring 提供了额外的服务,比如事务管理和各种其他技术的无缝集成。 Struts 是一个基于动作的表示框架(但不要将它用于新的开发)。 Struts 2 是一个基于动作的表示框架,上面的版本 2(由 WebWork 与 Struts 合并创建)。 Hibernate 是一个对象关系映射工具,一个持久化框架。 JavaServer Faces 是基于组件的表示框架。 JavaServer Pages 是所有提到的视图表示框架都使用的视图技术。 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 是一个很棒的堆栈。

也可以看看

现在选择 Java Web 框架?

Java - JDBC 替代方案

JEE6 与 Spring 3 堆栈

在 Java EE 6 中制作 Java Web 应用程序需要学习什么?


我想指出,在这种比较上下文中,有些人还使用 Spring 一词来指代它自己的 MVC 框架(这比 Struts IMO 好得多)。
很好的解释,但仍然太技术性了。我建议你用外行术语来解释它。无论如何,最后的链接做到了。
答案确实是一个很好的起点,但可以通过解释引入的主要概念(基于请求与基于组件的框架、IoC 容器、表示与持久性框架......)来改进。就目前而言,它需要很多额外的谷歌搜索,但这仍然是一个很好的答案,也是一个很好的起点!点赞。
S
Steve Piercy

一般来说...

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

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

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

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


S
Srikar Doddi

您可以查看自己的概览和排名here。 Hibernate 是一个 ORM,因此您可以使用 struts+Hiberante 或 spring+hibernate 来构建 Web 应用程序。不同的 web 框架和许多是相互替代的。


R
Robin Topper

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

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

Hibernate 是一种处理持久数据的 ORM(对象关系映射)。


P
Prabhu

简而言之,

Struts 用于网站的前端开发

Hibernate 用于网站的后端开发

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


U
Utsav T

在hibernate中,您无需担心如何在SQL中创建表,也无需记住连接,准备好的语句,例如数据保存在数据库中。因此,基本上它使开发人员的生活变得轻松。


V
VyTcdc

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

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

下面列出的是Spring和Strut Framework的区别对比图

https://i.stack.imgur.com/piubF.png


N
Nishat Lakhani

Tapestry 页面和组件是简单的 POJO(普通旧 Java 对象),由 getter 和 setter 组成,用于轻松访问 Java 语言功能。


R
Raman Gupta

Spring、Struts 和 Hibernate 的区别如下:

Spring 是一个应用程序框架,但 Struts 和 hibernate 不是。 Spring 和 Hibernate 是轻量级的,但 Struts 2 不是。 Spring 和 Hibernate 具有分层架构,但 Struts 2 没有。 Spring 和 Hibernate 支持松散耦合,但 Struts 2 不支持。 Struts 2 和 Hibernate 有标签库,但 Spring 没有。 Spring 和 Hibernate 很容易与 ORM 技术集成,但 Struts 没有。 Struts 2 很容易与客户端技术集成,但 Spring 和 Hibernate 没有。