时间:2021-05-20
1、Spring的事务管理主要包括3个接口
TransactionDefinition:封装事务的隔离级别,超时时间,是否为只读事务和事务的传播规则等事务属性,可通过XML配置具体信息。
PlatformTransactionManager:根据TransactionDefinition提供的事务属性配置信息,创建事务。
TransactionStatus:封装了事务的具体运行状态。比如,是否是新开启事务,是否已经提交事务,设置当前事务为rollback-only等。
2、Spring的事务管理:
1、PlatformTransactionManager:接口统一,抽取处理事务操作相关的方法;
(1):TransactionStatus getTransaction(TransactionDefinition definition): 根据事务定义信息从事务环境中返回一个已存在的事务,或者创建一个新的事务,并用TransactionStatus描述该事务的状态。
(2):void commit(TransactionStatus status): 根据事务的状态提交事务,如果事务状态已经标识为rollback-only,该方法执行回滚事务的操作。
(3):void rollback(TransactionStatus status): 将事务回滚,当commit方法抛出异常时,rollback会被隐式调用
2、在使用spring管理事务的时候,首先得告诉spring使用哪一个事务管理器;
3、常用的事务管理器:
DataSourceTransactionManager:使用JDBC,MyBatis的事务管理器;
HibernateTransactionManager:使用Hibernate的事务管理器;
3、步骤
第一步:配置Spring的事务管理器(需要用的dataSource)
第二步:配置事务
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://.test.tx.service.IAccountService.*(..))"/> <!--配置切面--> <aop:advisor advice-ref="advice" pointcut-ref="pointcut"/> </aop:config> <!--事务增强器--> <tx:advice id="advice" transaction-manager="manager"> <tx:attributes> <!--read-only可以将查询的方法设为只读事务--> <tx:method name="*" read-only="false"/> </tx:attributes> </tx:advice></beans>第三步:进行事务的测试
4、事务的注解配置方式
第一步:加载驱动
<!--事务的注解驱动,注解解析器需要关联事务管理器--> <tx:annotation-driven transaction-manager="manager"/>第二步:在实现类上添加注解@Transactional注解中相应的属性可以配置事务控制的相关细节(隔离级别/传播规则/是否只读等)
类中的方法也可以添加@Transactional注解,同样可以对方法进行细节配置,方法中的配置信息会覆盖类中的同名配置。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Spring事务管理Spring支持两种方式的事务管理:编程式事务管理:通过TransactionTemplate手动管理事务,实际应用中很少使用,使用XML配
前言在前面的小节中,我们学习了关于事务的概念以及事务管理的重要性,并且通过编程使用Spring的编程式事务管理进行操作,加深对事务管理的重要性的学习,不过,由于
配置事务:使用的tx前缀的标签,导入tx的命名空间配置事务管理器,把事务管理器交给Spring管理:事务的策略transaction-manager:事务增强基
前言Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现。
Spring事务隔离与事务传播的详解与对比Spring是SSH中的管理员,负责管理其它框架,协调各个部分的工作。今天一起学习一下Spring的事务管理。Spri