什么是Spring Framework?它对Hibernate的贡献是什么?
Hibernate是一个对象关系映射工具,是Sun的Entity Beans 2.0的替代品.Hibernate多年来已经成为Java中对象持久性的"事实上的标准",而今天的JPA API受Hibernate的高度启发(可以用作JPA实现).
Spring是一个依赖注入框架,它允许您连接组件并从其他服务中获益,如声明式事务管理,声明性安全性,与许多其他框架的集成,抽象层等.创建Spring以简化Enterprise Java应用程序开发并使其成为可能可能没有EJB和"重量级"容器.使用Spring和Hibernate以及例如Tomcat,您可以获得一个很好的企业堆栈.Spring是一个"轻量级"容器.
Spring和Hibernate严重影响了我们构建Java应用程序的方式,它们的采用证明了简化的必要性.尽管如此,我认为Java EE 5是Sun对这些"非标准"解决方案的回答,以简化Java Enterprise开发.
所以,是的,Spring Hibernate被广泛使用,Spring提供了Hibernate(和JPA)集成,但Spring和Hibernate是两个不同的项目,具有独立的板和治理.他们有共同的兴趣但是IMO Hibernate Team管理Hibernate,Spring Team管理Spring.
Spring Framework(http://www.springframework.org)是基于Java EE的应用程序的开发堆栈.最初作为依赖注入容器已经发展成为基于POJO的企业应用程序编程模型,提供开箱即用的常用服务和抽象(事务管理,缓存,批处理等).
与Hibernate(它是一个对象关系映射框架)没有直接关系,但在其ORM模块中,Spring为它提供了一个集成层.将它与Hibernate结合使用的好处包括:
能够使用声明式事务划分(通过Spring的AOP机制透明地应用)
数据访问层的异常转换(从用于实现DAO接口的实际持久性技术中抽象出来)
因此,尽管Spring实际上并没有为Hibernate做出贡献(据我所知),它对Hibernate非常有效,并提供了一些方便的好处.