Spring声明性事务管理
Spring的声明性事务管理是通过Spring AOP实现的,Spring提供了一个声明性回滚规则:我们可以指定什么类型的异常将导致回滚。
XML版配置
上述配置为service该层的一些方法包括事务管理,当调用它们时,事务将被启动、挂起、标记为只读或其他(取决于您定义的语义)。
回滚规则:
设置
属性 是否需要 默认值 描述
name 是 与事务属性关联的方法名。
propagation 不 REQUIRED 事务通信行为
isolation 不 DEFAULT 事务隔离级别
timeout 不 -1 事务超时(秒)
readonly 不 false 事务是否为只读
rollback-for 不 将触发回滚。Exception,用逗号分隔
no-rollback-for 不 未触发回滚Exception,用逗号分隔
注释版本配置
在xml中的配置工作将完成。@Transactional标记添加需要打开事务管理的接口定义、接口方法、类定义和类方法。(public)上。注:@Transactional它只是一种元数据,而且是基本的。tx:annotation-driven标签将打开事务。建议:@Transactional 用于特定类(方法)。
tx:annotation-driven配置
属性 默认值 描述
transaction-manager transactionManager 使用的事务管理器的名称。
mode proxy 默认模式“proxy”会用Spring的AOP要代理的框架已注释bean; 另一种可行模式”aspectj”会使用Spring的AspectJ面向Weave类的事务
proxy-target-class false 仅对代理模式有效。为使用@Transactional注释的类创建什么事务代理。 如果 “proxy-target-class” 属性已设置 “true”, 然后创建基于类的代理。如果 “proxy-target-class”属性已设置”false” 或未设置,则基于接口的标准JDK代理已创建。
order Ordered.LOWEST\_PRECEDENCE 使用定义事务通知的顺序。@Transactional注解的bean上
@Transactional注释的属性
属性 类型 描述
propagation 枚举型:Propagation 可选通信设置
isolation 枚举型:isolation 可选隔离级别(默认值:ISOLATION\_DEFAULT)
readOnly 布尔型 读写事务 vs. 只读事务
timeout int型(秒为单位) 事务超时
rollbackFor 一组 Class 类的实例必须是Throwable 的子类 遇到一组异常类 必须 回滚。默认情况下checked exceptions没有回滚,只有unchecked exceptions(即RuntimeException子类)。
rollbackForClassname 一组 Class 类的名称必须为Throwable的子类 遇到异常时必须回滚的一组异常类名
noRollbackFor 一组 Class 类的名称必须为Throwable的子类 一组遇到异常时不能回滚的异常类名
noRollbackForClassname 一组 Class 类的名称必须为Throwable的子类 一组遇到异常时不能回滚的异常类名
---------------------
作者:旧杂项
来源:CSDN
原文:https://blog.csdn.net/u012744159/article/details/50847369
版权声明:本文为博主原创文章。转载请附上博客链接!
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除