栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringAOP事务配置语法及实现过程详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringAOP事务配置语法及实现过程详解

配置事务: 使用的tx前缀的标签, 导入tx的命名空间

配置事务管理器 , 把事务管理器交给Spring管理:


    
    

事务的策略

transaction-manager: 事务增强基于那个事务管理器, 默认值: transactionManager(bean的id)

如果事务管理器的id为transactionManager, 在tx:advice标签中不需要添加transaction-manager属性



  
      
     
     
     
     
     
     
  

事务规则的语法:

name: 表示业务层的方法名

read-only: 只读, true 查询中使用这个属性, 默认值: false

propagation: 事务传播机制:

*** REQUIRED:默认值,表示如果存在一个事务,则支持当前事务,如果当前没有事务,则开启一个新的事务. 增删改
*** SUPPORTS:表示如果存在一个事务,则支持当前事务,如果当前没有事务,则按非事务方式执行, 查询
MANDATORY:表示如果存在一个事务,则支持当前事务,如果当前没有事务,则抛出异常
REQUIRES_NEW:表示总是开启一个新的事务,如果当前有一个事务,则将当前事务挂起,开启新事物执行方法.
NOT_SUPPORTED:表示总是以非事务方式执行.如果一个事务已经存在,则将这个存在的事务挂起,然后执行方法.
NEVER:表示总是以非事务方式执行.如果当前存在一个活动的事务,则抛出异常
NESTED:表示如果当前存在一个活动的事务,则创建一个事务作为当前事务的嵌套事务运行,如果没有当前事务,该取值与REQUIRED相同.

timeout: 超时, -1 永不超时, 默认值, 正整数, 单位秒

rollback-for="异常类型", 针对哪一种异常类型进行回滚, ,默认值:RuntimeException

no-rollback-for="异常类型", 不对哪一种异常类型进行回滚

isolation: 事务隔离级别: 数据库来决定

DEFAULT:默认值,表示使用数据库默认的事务隔离级别
READ_UNCOMMITTED:读未提交, 读取到未提交的数据, 所有的数据库都不采用
READ_COMMITTED:读已提交 oracle
REPEATABLE_READ: 可重复读 mysql
SERIALIZABLE: 串行读 安全性最高, 效率最低

timeout: 从执行业务方法开始,到执行完sql语句之间的时候

事务的织入 (把这个事务的通知对那些类的那些方法进行增强)


  
    
    
    
    
  

脏读 :一个事务读到了另一个事务的未提交的数据

不可重复读 :一个事务读到了另一个事务已经提交的 update 的数据导致多次查询结果不一致

幻读 :一个事务读到了另一个事务已经提交的 insert 的数据导致多次查询结果不一致

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/133644.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号