1 浅谈Spring中的事务回滚
https://www.cnblogs.com/zeng1994/p/8257763.html

2 spring 事务回滚
https://www.cnblogs.com/0201zcr/p/5962578.html

 * Describes transaction attributes on a method or class.** <p>This annotation type is generally directly comparable to Spring's* {@link org.springframework.transaction.interceptor.RuleBasedTransactionAttribute}* class, and in fact {@link AnnotationTransactionAttributeSource} will directly* convert the data to the latter class, so that Spring's transaction support code* does not have to know about annotations. If no rules are relevant to the exception,* it will be treated like* {@link org.springframework.transaction.interceptor.DefaultTransactionAttribute}* (rolling back on {@link RuntimeException} and {@link Error} but not on checked* exceptions).** <p>For specific information about the semantics of this annotation's attributes,* consult the {@link org.springframework.transaction.TransactionDefinition} and* {@link org.springframework.transaction.interceptor.TransactionAttribute} javadocs.
/** Copyright 2002-2016 the original author or authors.** Licensed under the Apache License, Version 2.0 (the "License");* you may not use this file except in compliance with the License.* You may obtain a copy of the License at**      http://www.apache.org/licenses/LICENSE-2.0** Unless required by applicable law or agreed to in writing, software* distributed under the License is distributed on an "AS IS" BASIS,* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.* See the License for the specific language governing permissions and* limitations under the License.*/package org.springframework.transaction.annotation;import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;import org.springframework.core.annotation.AliasFor;
import org.springframework.transaction.TransactionDefinition;/*** Describes transaction attributes on a method or class.** <p>This annotation type is generally directly comparable to Spring's* {@link org.springframework.transaction.interceptor.RuleBasedTransactionAttribute}* class, and in fact {@link AnnotationTransactionAttributeSource} will directly* convert the data to the latter class, so that Spring's transaction support code* does not have to know about annotations. If no rules are relevant to the exception,* it will be treated like* {@link org.springframework.transaction.interceptor.DefaultTransactionAttribute}* (rolling back on {@link RuntimeException} and {@link Error} but not on checked* exceptions).** <p>For specific information about the semantics of this annotation's attributes,* consult the {@link org.springframework.transaction.TransactionDefinition} and* {@link org.springframework.transaction.interceptor.TransactionAttribute} javadocs.** @author Colin Sampaleanu* @author Juergen Hoeller* @author Sam Brannen* @since 1.2* @see org.springframework.transaction.interceptor.TransactionAttribute* @see org.springframework.transaction.interceptor.DefaultTransactionAttribute* @see org.springframework.transaction.interceptor.RuleBasedTransactionAttribute*/
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Transactional {/*** Alias for {@link #transactionManager}.* @see #transactionManager*/@AliasFor("transactionManager")String value() default "";/*** A <em>qualifier</em> value for the specified transaction.* <p>May be used to determine the target transaction manager,* matching the qualifier value (or the bean name) of a specific* {@link org.springframework.transaction.PlatformTransactionManager}* bean definition.* @since 4.2* @see #value*/@AliasFor("value")String transactionManager() default "";/*** The transaction propagation type.* <p>Defaults to {@link Propagation#REQUIRED}.* @see org.springframework.transaction.interceptor.TransactionAttribute#getPropagationBehavior()*/Propagation propagation() default Propagation.REQUIRED;/*** The transaction isolation level.* <p>Defaults to {@link Isolation#DEFAULT}.* @see org.springframework.transaction.interceptor.TransactionAttribute#getIsolationLevel()*/Isolation isolation() default Isolation.DEFAULT;/*** The timeout for this transaction.* <p>Defaults to the default timeout of the underlying transaction system.* @see org.springframework.transaction.interceptor.TransactionAttribute#getTimeout()*/int timeout() default TransactionDefinition.TIMEOUT_DEFAULT;/*** {@code true} if the transaction is read-only.* <p>Defaults to {@code false}.* <p>This just serves as a hint for the actual transaction subsystem;* it will <i>not necessarily</i> cause failure of write access attempts.* A transaction manager which cannot interpret the read-only hint will* <i>not</i> throw an exception when asked for a read-only transaction* but rather silently ignore the hint.* @see org.springframework.transaction.interceptor.TransactionAttribute#isReadOnly()*/boolean readOnly() default false;/*** Defines zero (0) or more exception {@link Class classes}, which must be* subclasses of {@link Throwable}, indicating which exception types must cause* a transaction rollback.* <p>By default, a transaction will be rolling back on {@link RuntimeException}* and {@link Error} but not on checked exceptions (business exceptions). See* {@link org.springframework.transaction.interceptor.DefaultTransactionAttribute#rollbackOn(Throwable)}* for a detailed explanation.* <p>This is the preferred way to construct a rollback rule (in contrast to* {@link #rollbackForClassName}), matching the exception class and its subclasses.* <p>Similar to {@link org.springframework.transaction.interceptor.RollbackRuleAttribute#RollbackRuleAttribute(Class clazz)}.* @see #rollbackForClassName* @see org.springframework.transaction.interceptor.DefaultTransactionAttribute#rollbackOn(Throwable)*/Class<? extends Throwable>[] rollbackFor() default {};/*** Defines zero (0) or more exception names (for exceptions which must be a* subclass of {@link Throwable}), indicating which exception types must cause* a transaction rollback.* <p>This can be a substring of a fully qualified class name, with no wildcard* support at present. For example, a value of {@code "ServletException"} would* match {@code javax.servlet.ServletException} and its subclasses.* <p><b>NB:</b> Consider carefully how specific the pattern is and whether* to include package information (which isn't mandatory). For example,* {@code "Exception"} will match nearly anything and will probably hide other* rules. {@code "java.lang.Exception"} would be correct if {@code "Exception"}* were meant to define a rule for all checked exceptions. With more unusual* {@link Exception} names such as {@code "BaseBusinessException"} there is no* need to use a FQN.* <p>Similar to {@link org.springframework.transaction.interceptor.RollbackRuleAttribute#RollbackRuleAttribute(String exceptionName)}.* @see #rollbackFor* @see org.springframework.transaction.interceptor.DefaultTransactionAttribute#rollbackOn(Throwable)*/String[] rollbackForClassName() default {};/*** Defines zero (0) or more exception {@link Class Classes}, which must be* subclasses of {@link Throwable}, indicating which exception types must* <b>not</b> cause a transaction rollback.* <p>This is the preferred way to construct a rollback rule (in contrast* to {@link #noRollbackForClassName}), matching the exception class and* its subclasses.* <p>Similar to {@link org.springframework.transaction.interceptor.NoRollbackRuleAttribute#NoRollbackRuleAttribute(Class clazz)}.* @see #noRollbackForClassName* @see org.springframework.transaction.interceptor.DefaultTransactionAttribute#rollbackOn(Throwable)*/Class<? extends Throwable>[] noRollbackFor() default {};/*** Defines zero (0) or more exception names (for exceptions which must be a* subclass of {@link Throwable}) indicating which exception types must <b>not</b>* cause a transaction rollback.* <p>See the description of {@link #rollbackForClassName} for further* information on how the specified names are treated.* <p>Similar to {@link org.springframework.transaction.interceptor.NoRollbackRuleAttribute#NoRollbackRuleAttribute(String exceptionName)}.* @see #noRollbackFor* @see org.springframework.transaction.interceptor.DefaultTransactionAttribute#rollbackOn(Throwable)*/String[] noRollbackForClassName() default {};}

Spring中的事务回滚 网上比较不错的文章相关推荐

  1. Spring中@Transactional事务回滚(含实例详细讲解,附源码)

    一.使用场景举例 在了解@Transactional怎么用之前我们必须要先知道@Transactional有什么用.下面举个栗子:比如一个部门里面有很多成员,这两者分别保存在部门表和成员表里面,在删除 ...

  2. Spring声明式事务管理中的事务回滚

    一:使用 本文在spring + spring mvc + mybatis中使用 第一步配置xml:注意xml最前面tx名称空间一定要配置 <beans xmlns="http://w ...

  3. java中的事务回滚_Spring中的事务回滚机制

    问题:在Java项目汇中,添加@Transactional注解,报错之后,事务回滚未生效,数据仍插入数据库中.经查看报错位置位于新增成功之后.空指针异常. 一.特性 先了解一下@Transaction ...

  4. 多线程中的事务回滚,你真的用对了吗?

    点击关注公众号,实用技术文章及时了解 来源:blog.csdn.net/weixin_43225491/article/ details/117705686 背景介绍 1,最近有一个大数据量插入的操作 ...

  5. MySQL中的事务回滚机制

    在 MySQL 中,恢复机制是通过回滚日志(undo log)实现的,所有事务进行的修改都会先记录到这个回滚日志中,然后在对数据库中的对应行进行写入. 当事务已经被提交之后,就无法再次回滚了. 回滚日 ...

  6. Mysql存储过程中的事务回滚

    create procedure test(in a int)BEGINDECLARE t_error INTEGER DEFAULT 0;DECLARE CONTINUE HANDLER FOR S ...

  7. spring事务回滚理解

    1.代码中事务控制的3种方式 编程式事务:就是直接在代码里手动开启事务,手动提交,手动回滚.优点就是可以灵活控制,缺点就是太麻烦了,太多重复的代码了. 声明式事务:就是使用SpringAop配置事务, ...

  8. 实际开发中,有时没有异常发生,但是执行结果不是我们期望的情况,需要手动让事务回滚

    需求:开支单保存 原来的代码: 修改后的代码: Spring控制事务下手动回滚事务的方法: 在实际开发中,有时并没有异常发生,但是由于事务结果未满足具体业务需求,所以我们不得不手动回滚事务! 有如下两 ...

  9. springboot事务回滚源码_Spring Boot中的事务是如何实现的

    1. 概述 一直在用SpringBoot中的@Transactional来做事务管理,但是很少想过SpringBoot是如何实现事务管理的,今天从源码入手,看看@Transactional是如何实现事 ...

最新文章

  1. html css bootstrap,CSS Bootstrap是什么?
  2. 修改用户名_新华美育查找用户名及修改密码的方法分享
  3. LuckyDraw app被评为Microsoft365 App Award
  4. Java中线程池,你真的会用吗?
  5. Eclipse中Mybatis的自动提示的配置
  6. Java 8 时间日期库的20个使用演示样例
  7. redis抽奖并发_redis并发操作(lpop/lpush实现)
  8. matlab 不见了,matlab命令窗口不见了
  9. 中国女性出席1899年伦敦世界妇女大会
  10. 计算机建立第2用户,2016年计算机二级VF备考练习题及参考答案(5)
  11. 机器学习的数学基础(2):赋范空间、内积空间、完备空间与希尔伯特空间
  12. 新技能Get! 手把手教你接入CG Kit
  13. Fishingprince Plays With Array(思维/数学/实现)
  14. 如何设计一个监控平台(上篇)
  15. SLF4J(六) - MDC/MDCAdapter是什么?
  16. matlab火箭模型,基于Matlab/Simulink的新型火箭建模与仿真平台搭建
  17. 开发避坑2——大鸟 pk Bug2(SVN报错:database disk image is malformed
  18. 旧版VS安装 Visual Studio 2019/2017/2015官方安装教程
  19. Delphi--Delphi资源
  20. ClickHouse在工业互联网场景的OLAP平台建设实践

热门文章

  1. 获取iview中表单组件Table的选中数据
  2. 高考计算机模拟系统,高考工厂模拟
  3. python输入生日判断星座_用java编一个程序能通过用户输入的生日判断用户的星座。请大神们给点提示或者思路吧。规定不能自定义方法...
  4. python里的define怎么用_如何用(?(DEFINE))在Python中编写正则表达式?
  5. 如何借助配置中心ACM加速企业IT服务快速迭代
  6. 【转】mybatis 自增主键配置
  7. 0923接口——练习题作业
  8. cocos2d-js 越来越慢的定时器schedule 制作不变慢的定时器
  9. HttpRuntime.Cache的使用经验
  10. 【转】Android应用的自动升级、更新模块的实现 (2)