Spring事务是如何管理的
1、Spring事务管理主要包括3个接口,Spring的事务主要是由他们三个共同完成的,其中的PlatformTransactionManager是Spring事务管理的核心接口!这三个事务管理器接口是根据指定的传播行为,返回当前活动的事务,或者创建一个新的事务,参数的类定义一些基本的事务属性。
2、第一个接口是PlatformTransactionManager,是Spring事务管理的核心接口。主要功能是事务管理器,是用于平台相关事务的管理,包括commit 事务的提交;rollback 事务的回滚;getTransaction 事务状态的获取三种方法。
3、第二个接口是TransactionDefinition,主要功能是事务定义信息,是用来定义糙怍牢莱事务相关的属性,给事务管理器PlatformTransactionManager使用的。而且在皈其拄攥TransactionDefinition接口中定义了它自己的传播行为和隔离级别。包括getIsolationLevel:获取隔离级别;getPropagationBehavior:获取传播行为;getTimeout:获取超时时间;isReadOnly:是否只读 四种方法。
4、第三个接口是TransactionStatus,主要功能是事务具体运行状态,是事务管理过程中,每个时间点事务的状态信息,它可以封装许多代码,节省我们的工作量。包括hasSavepoint(像粜杵泳):返回这个事务内部是否包含一个保存点;isCompleted():返回该事务是否已完成,也就是说,是否已经提交或回滚;isNewTransaction():判断当前事务是否是一个新事务 这三种方法。
5、看完以上的三个接口,那么你知道Spring是如何配置事务管理器的吗?编程式事务管理:通过PlatformTransactionManager实现来进行事务管理。
6、声明式事务管理:基于tx和aop命名空间的xml配置文件。
7、声明式事务管理:基于@Transactional注解。
8、在Spring配置文件中定义事务管理器,如下图所示: