美文网首页
【Spring】Spring事务

【Spring】Spring事务

作者: su_wing | 来源:发表于2017-11-09 23:50 被阅读0次

一.Spring事务

配置方式

项目通过声明式事务中的拦截器方法实现事务管理。

首先配置TransactionIntercepter,包括他的属性TransactionManager(HibernateTransactionManager),以及事务属性:传播属性与只读,通过transactionAttribute指定

然后利用BeanNameAutoProxyCreator,是一个根据bean名生成自动代理的代理创建器,指定beanName与拦截器,实现将事务动态织入指定bean的功能。

Spring事务管理关键抽象

包括三个部分:事务管理器、事务属性以及事务状态(运行时的状态)

1)事务管理器PlatformTransactionManager:管理事务提交或回滚(!就只有这俩主要功能)

a.接口方法:getTransaction(TransactionDefinition definition)

commit(TransactionStatus status):根据事务状态提交事务

rollback(TransactionStatus status):若提交时抛出异常,将隐式回滚

2)事务属性TransactionDefinition:用于描述事务的隔离级别、超时时间、是否为只读事务和事务传播规则等控制事务具体行为的事务属性

a.事务隔离:四中隔离级别,默认与底层数据库的一致(Oracle 读已提交,Mysql 可重复读)

b.事务传播:当有事务嵌套发生时,我们需要用设置传播行为控制当前事务如何传播到被嵌套的方法中去。

Propagation_required:当前如果没有事务,则新建。如果有事务,则加入这个事务中(最常用)

Propagation_support:支持当前事务,当前如果没有事务,则以非事务方式运行

Propagation_mandatory:使用当前事务,若无则抛出异常

Propagation_required_new:新建事务,若有,则挂起

Propagation_never:非事务方式,若有,抛出异常

Propagation_not_support:非事务方式,若有,则挂起

Propagation_nested:若存在,在被嵌套事务中执行,若无,则加入(与父事务相依 有savepoint)

c.事务超时:TIMEOUT_DEFAULT:事务运行多久苏安超市。超市后事务将会回滚。

d.只读状态:设置为只读事务,该事务不能修改任何数据。

3)事务状态TransactionStatus:代表一个事务的具体运行状态

事务管理器通过该接口可以:a.获取一个事物的运行状态

b.间接的回滚事务(更具有可控性)

c.继承自SavePointManager接口,具有分段事务控制能力。

相关文章

  • 关于事务的思考

    Spring对于事务的支持 Spring事务接口 Spring事务管理器 Spring并不直接管理事务,而是提供多...

  • Spring事务的传播特性引发的一场血案

    Spring事务的传播特性是对于Spring事务管理的一项特殊配置;Spring事务基于Spring AOP特性,...

  • Spring事务

    Spring 事务 分类 Spring可以支持编程式事务和声明式事务。 编程式事务 实现 Spring使用事务管理...

  • spring04

    Spring JdbcTemplate学习 Spring 声明式事务 xml配置实现 Spring 声明式事务 注...

  • Spring中实现事务方式

    Spring 中实现事务的方式 Spring 并不直接支持事务,只有当数据库支持事务时,Spring 才支持事务,...

  • Spring 事务实现分析

    1. Spring 事务简介 Spring 本身并不实现事务,Spring事务 的本质 还是 底层数据库 对事务的...

  • 问题记录

    面试题记录 spring spring事务传播机制和隔离级别? spring支持的事务类型? 什么是 Spring...

  • 程序员之Spring

    1. Spring事务 spring的事务实现原理Spring事务将connection放入到当前线程的threa...

  • 面试题总结 —— JAVA高级工程师

    一、1、Spring 事务的隔离性,并说说每个隔离性的区别 解答:Spring事务详解 2、Spring事务的传播...

  • Spring事务的传播属性和隔离级别

    Spring事务传播属性 所谓spring事务的传播属性,就是定义在存在多个事务同时存在的时候,spring应该如...

网友评论

      本文标题:【Spring】Spring事务

      本文链接:https://www.haomeiwen.com/subject/afdvmxtx.html