有良多人感觉我们有了Spring,就再也不需要去向理获得毗连、事务提交、回滚和封闭毗连等这些操作了,其实并不是如许的,事实上Spring并不是直接办理事务的,只是供给了多种事务办理器,让持久化机制所供给的平台框架的事务来实现事务办理。感乐趣的伴侣一路来看看吧!~若是对你有帮忙,那么就随手投个票吧,感谢啦~
Spring事务办理本家儿要包罗3个接口,Spring的事务本家儿如果由他们三个配合完当作的,此中的PlatformTransactionManager是Spring事务办理的焦点接口!这三个事务办理器接口是按照指心猿意马的传布行为,返回当前勾当的事务,或者建立一个新的事务,参数的类界说一些根基的事务属性。
第一个接口是PlatformTransactionManager,是Spring事务办理的焦点接口。本家儿要功能是事务办理器,是用于平台相关事务的办理,包罗commit 事务的提交;rollback 事务的回滚;getTransaction 事务状况的获取三种方式。
第二个接口是TransactionDefinition,本家儿要功能是事务界说信息,是用来界说事务相关的属性,给事务办理器PlatformTransactionManager利用的。并且在TransactionDefinition接口中界说了它本身的传布行为和隔离级别。包罗getIsolationLevel:获取隔离级别;getPropagationBehavior:获取传布行为;getTimeout:获取超不时间;isReadOnly:是否只读 四种方式。
第三个接口是TransactionStatus,本家儿要功能是事务具体运行状况,是事务办理过程中,每个时候点事务的状况信息,它可以封装很多代码,节流我们的工作量。包罗hasSavepoint():返回这个事务内部是否包含一个保留点;isCompleted():返回该事务是否已完当作,也就是说,是否已经提交或回滚;isNewTransaction():判定当前事务是否是一个新事务 这三种方式。
看完以上的三个接口,那么你知道Spring是若何设置装备摆设事务办理器的吗?
编程式事务办理:经由过程PlatformTransactionManager实现来进行事务办理。
声明式事务办理:基于tx和aop定名空间的xml设置装备摆设文件。
声明式事务办理:基于@Transactional注解。
在Spring设置装备摆设文件中界说事务办理器,如下图所示:
0 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!