【问题标题】:What is the difference between Spring, Struts, Hibernate, JavaServer Faces, Tapestry?Spring、Struts、Hibernate、JavaServer Faces、Tapestry 有什么区别?
【发布时间】:2023-03-09 13:45:02
【问题描述】:

请问有什么区别:-

  1. 春天
  2. 支柱
  3. 支柱 2
  4. 休眠
  5. JavaServer Faces
  6. JavaServer 页面
  7. 挂毯

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

谢谢。

【问题讨论】:

    标签: java frameworks jakarta-ee


    【解决方案1】:
    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 好得多)。
    • 很好解释,但仍然过于技术化。我建议你用外行术语来解释它。无论如何,最后的链接做到了。
    • 答案确实是一个很好的起点,但可以通过解释介绍的主要概念(基于请求与基于组件的框架、IoC 容器、表示与持久性框架...)来改进。现在,它需要大量额外的谷歌搜索,但它仍然是一个很好的答案,也是一个很好的起点!点赞。
    【解决方案2】:

    一般...

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          【解决方案5】:

          总之,

          Struts用于网站前端开发

          Hibernate用于网站的后端开发

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

          【讨论】:

            【解决方案6】:

            在hibernate中,你不需要关心如何在SQL中创建表,你不需要记住连接,准备好的语句,就像数据被持久化在数据库中一样。因此,基本上它使开发人员的生活变得轻松。

            【讨论】:

              【解决方案7】:

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

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

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

              【讨论】:

                【解决方案8】:

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

                【讨论】:

                  【解决方案9】:

                  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 没有。

                  【讨论】:

                    猜你喜欢
                    • 2010-11-23
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-08-31
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2015-05-10
                    相关资源
                    最近更新 更多