【问题标题】:Spring Framework春天框架
【发布时间】:2009-03-10 04:44:10
【问题描述】:

什么是 Spring 框架? 它对 Hibernate 有什么贡献?

【问题讨论】:

  • 还有一个.NET version of Spring
  • 为什么全部投反对票?这似乎是一个没有经验的人要么想了解 Spring,要么受命这样做。询问方向不应该意味着你会被扇耳光。
  • 讨厌 Stack Overflow 的十大理由,它和 Reddit 一样易怒。

标签: java hibernate spring


【解决方案1】:

Hibernate 是一种对象关系映射工具,是 Sun 的 Entity Beans 2.0 的替代品。多年来,Hibernate 已成为 Java 中对象持久性的“事实上的标准”,而今天的 JPA API 深受 Hibernate(可用作 JPA 实现)的启发。

Spring 是一个依赖注入框架,它允许您连接组件并受益于附加服务,如声明式事务管理、声明式安全、与许多其他框架的集成、抽象层等。创建 Spring 是为了简化企业 Java 应用程序的开发和在没有 EJB 和“重量级”容器的情况下使其成为可能。使用 Spring 和 Hibernate 以及例如Tomcat,你会得到一个不错的企业堆栈。 Spring 是一个“轻量级”容器。

Spring 和 Hibernate 极大地影响了我们构建 Java 应用程序的方式,它们的采用证明了简化的必要性。尽管如此,我还是将 Java EE 5 视为 Sun 对这些“非标准”解决方案的回答,以简化 Java 企业开发。

所以是的,Spring Hibernate 被广泛使用,Spring 提供 Hibernate(和 JPA)集成,但 Spring 和 Hibernate 是两个不同的项目,具有独立的董事会和治理。他们有共同的利益,但 IMO Hibernate 团队管理 Hibernate,Spring 团队管理 Spring。

【讨论】:

    【解决方案2】:

    Spring 框架 (http://www.springframework.org) 是基于 Java EE 的应用程序的开发堆栈。最初的 dependency injection 容器已经发展成为基于 POJO 的企业应用程序编程模型,提供开箱即用的常用服务和抽象(事务管理、缓存、批处理等)。

    与 Hibernate(这是一个 object-relational mapping 框架)没有直接关系,但在其 ORM 模块中,Spring 为其提供了一个集成层。将它与 Hibernate 结合使用的好处包括:

    • 能够使用声明性事务划分(通过 Spring 的 AOP 机制透明地应用)

    • 数据访问层的异常转换(从用于实现 DAO 接口的实际持久性技术中抽象出来)

    因此,尽管 Spring 实际上并没有为 Hibernate 做出贡献(据我所知),但它与 Hibernate 配合得非常好,并提供了一些方便的好处。

    【讨论】:

      【解决方案3】:
      【解决方案4】:

      Spring 和 Hibernate 是两个独立的框架,可以一起使用,但除此之外彼此无关。

      Hibernate 是一种对象关系映射工具。它可以帮助希望使用与关系数据库表相关的域对象的开发人员。如果使用 Hibernate,则以编程方式连接数据库或解析结果集等任务的复杂性会大大降低。

      Spring 框架提供了多种工具,所有这些工具都基于少量的核心概念。这些概念中最著名的是依赖注入,它允许对象的松散耦合,有助于简化开发和测试。

      开箱即用,Spring 提供了多种工具来帮助与其他框架很好地配合使用——Hibernate 就是其中之一。尽管 Hibernate 是一个很棒的工具,但在编写执行数据库操作的代码以及异常处理方面存在一定程度的复杂性。 Spring 的 Hibernate Template 试图解决这个问题。这可能就是您所说的他们的“贡献”,尽管据我所知,Hibernate 背后的人并不是这种支持的忠实拥护者。

      您可以在没有 Hibernate 的情况下使用 Spring,也可以在没有 Spring 的情况下使用 Hibernate。您甚至可以拥有一个使用 Hibernate 和 Spring 但不使用 Spring Hibernate 模板的项目。

      【讨论】:

        【解决方案5】:

        Spring 是一个轻量级容器(和框架),它使 J2EE 开发更容易、更快且可扩展。它与 Hibernate 有很好的集成功能。

        【讨论】:

          【解决方案6】:

          春季框架

          • 强大的开源。
          • 轻量级应用程序框架。
          • 降低整体复杂性。
          • 综合工具。
          • 框架的框架。
          • 利用一系列资源。

          为什么 Spring 如此受欢迎?

          • MVC
          • 灵活,因为它使用接口。
          • 更容易测试。
          • 国际奥委会。
          • 与视图技术更好地集成。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-09-23
            • 2016-07-24
            • 1970-01-01
            • 2011-11-28
            • 2020-10-13
            • 2016-05-25
            • 2014-08-22
            • 2013-11-02
            相关资源
            最近更新 更多