事务有四大特性(ACID):原子性(Atomicity)、一致性(Consistency)、隔离性(Clsolation)和持久性( Durability)。
Spring既支持编程式事务管理(也称编码式事务),又支持声明式事务管理 。 编程式事务管理是指将事务管理代码嵌入业务方法中来控制事务的提交和回滚。在编程式事务中,必须在每个业务操作中包含额外的事务管理代码 。声 明式事务管理是指将事务管理代码从业务方法中分离 出来,以声明的方式来实现事务管理。在大多数情况下, 声明式事务管理比编程式事务管理更好用。 Spring通过 SpringAOP框架支持声明式事务管理 。
数据访问的技术很多,如 JDBC、 IPA、 Hibernate、分布式事务等。面对众多的数据访问技术, Spring在不同的事务管理 API上定义了一个抽象层PlatformTransaction-Manager管理机制 。应用程序开发人员不必了解底层的事务管理 API 就可以使用Spring的事务管理机制
Spring 并不直接管理事务,而是提供了许多内置事务管理器实现,常用的有DataSourceTransactionManager 、J doTransactionManager、JpaTransactionManager 以及 HibernateTransactionManager 等。