事物简介:
事物管理是企业级开发中必不可少的技术,是保障数据完整性和一致性的:
事物就是一系列的动作,被当做一个独立的单元,这个独立的单元要么全部完成,要么全部失败
事物有四个关键属性(ACID)
1、原子性:一个事物包含一个或多个动作,要么全部完成,要么全部失败,保证一个原子性
2、一致性:一旦事物完成,被提交,则提交保存的数据必须与提交时的数据和规则保持一致
3、隔离性:多个事物同时进行时,它们之间是独立执行,相互之间没有关系
4、持久性:一旦事物提交完成,后续不管发生什么,数据不受影响
Spring中的事物管理:
在企业级应用程序开发中,Spring对不同的事物管理api上定义了一个抽象层,而我们不必了解底层的api,就可以直接使用Spring事务管理机制
Spring既支持编程式事务管理,也支持申明式事务管理
编程式事务管理:将事物管理代码嵌入到代码中进行事物的提交和回滚,需要在每个事物操作中都要额外的事物管理代码
申明式事务管理:在更多情况下比编程式事物更好用,它将事物管理代码从业务代码中抽离出来,以申明的方式进行事物管理,事物管理作为一种横切关注点,通过AOP进行事物管理模块化,通过Spring AOP支持申明式事物管理
Spring从不同的事物管理api中抽象了一整套的事务管理机制,我们不用了解底层api就可以使用事物管理机制,使得事物管理代码独立与特定的事物技术
Spring的核心事务管理抽象是PlatformTransactionManager,管理封装了一套独立于事物技术的方法,不论用编程式事物管理还是申明式事物管理都需要PlatformTransactionManager