Spring ORM - 概述


Spring 框架与 Hibernate、Java Persistence API (JPA)、Java Data Objects (JDO) 和 iBATIS SQL Maps 等 ORM 框架很好地集成。Spring 提供资源管理、数据访问对象(DAO)实现和事务策略。Spring 允许通过依赖管理来配置 ORM 库功能。Spring 为其支持的所有 ORM 库维护统一的 DAO 异常层次结构和通用事务管理。

Spring IoC 容器有利于 ORM 配置和轻松部署。以下是使用 Spring 框架创建 ORM DAO 的主要好处。

  • 易于测试- 使用 spring IoC,可以轻松配置 ORM 实现。每个持久性单元都可以单独测试。

  • 常见数据访问异常- Spring 将 ORM 工具异常包装为常见运行时异常,作为 DataAccessException。此方法有助于在适当的层中处理大多数持久性异常(不可恢复)。无需处理 ORM 特定的样板 catch/throws/异常声明。

  • 常规资源管理- Spring应用程序上下文可以轻松管理持久性对象及其配置。例如,Hibernate SessionFactory 实例、JPA EntityManagerFactory 实例、JDBC DataSource 实例、iBatis SQL Maps 配置对象和其他相关对象。Spring 自行处理本地事务以及 JTA 事务管理。

  • 集成事务管理- Spring AOP 可用于使用声明性 AOP 样式拦截器包装 ORM 代码,可以使用 @Transaction 注释或通过在 XML 配置文件中指定事务 AOP 建议。Spring处理事务语义、异常处理、回滚等。Spring 允许交换事务管理器而不影响 ORM 代码。