Spring申明式事务工作的两种办法(XML和Annotation)版权声明

原创
小哥 3年前 (2022-11-11) 阅读数 35 #大杂烩

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 版权声明:本文为博主原创文章。转载请附上博客链接!
版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门