当前位置:首页 > Java入门 > 正文内容

spring @transactional原理(spring的transactional注解)

abcsky887个月前 (10-31)Java入门87

本文分享给大家的是:

我们知道Exception分为运行时异常RuntimeException【程序在运行时暴露的异常】和非运行时异常【也叫检查式异常】我们常见的运行时异常:ClassCastException(类转换异常) 。

spring @transactional原理(spring的transactional注解)

IndexOutOfBoundsException(数组越界) NullPointerException(空指针) ArrayStoreException(数据存储异常,操作数组时类型不一致) 还有IO操作的BufferOverflowException异常

非运行时异常就必须得捕获了,否则编译不过去,java编译器要求程序员必须对这种异常进行catch,Java认为Che网站推广怎么推广cked异常都是可以被处理(修复)的异常,所以Java程序必须显式处理Checked异常。

IOException、FileNotFoundExcetion 和SQLExceptionJava把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类Java中的异常分为两大类:错误Error和异常Exception,Java异常体系结构如下图所示:。

ThrowableThrowable类是所有异常或错误的超类,它有两个子类:Error和Exception,分别表示错误和异常其中异常Exception分为运行时异常(RuntimeException)和非运行时异常网站推广怎么推广,也称之为不检查异常(Unchecked Exception)和检查异常(Checked Exception)。

Error一般是指java虚拟机相关的问题,如系统崩溃、虚拟机出错误、动态链接失败等,这种错误无法恢复或不可能捕获,将导致应用程序中断,通常应用程序无法处理这些错误,因此应用程序不应该捕获Error对象,也无须在其throws子句中声明该方法抛出任何Error或其子类。

事务管理方式 事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性Spring支持编程式事务管理和声明式事务管理两种方式   编程式事务管理使用TransactionTemplate或者直接网站推广怎么推广使用底层的PlatformTransactionManager。

对于编程式事务管理,spring推荐使用TransactionTemplate  声明式事务管理建立在AOP之上的其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。

  声明式事务管理也有两种常用的方式,一种是基于tx和aop名字空间的xml配置文件,另一种就是基于@Transactional注解显然基于注解的方式更简单易用,更清爽当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标记来覆盖类级别的定义。

在项目中网站推广怎么推广,@Transactional(rollbackFor=Exception.class),如果类加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚在@Transactional注解中如果不配置rollbackFor属性,那么事物只会在遇到RuntimeException的时候才会回滚,加上rollbackFor=Exception.class,可以让事物在遇到非运行时异常时也回滚 。

举报/反馈

扫描二维码推送至手机访问。

版权声明:本文由海南拓宏网络科技工作室发布,如需转载请注明出处。

本文链接:http://4blc.com/post/978.html

分享给朋友:

“spring @transactional原理(spring的transactional注解)” 的相关文章

java程序培训哪里好(java程序培训机构)

本篇文章给大家谈谈 原标题:java程序培训哪家好【尚学堂】目前市面上能够进行java程序员培训的机构有不少,其中比较不错的机构也很多,大家如果想要通过培训学习成为一名合格的java培训程序员的话,还是需要下一定的功夫去找一家适合自己的并且是专业靠谱的机构报名学习。 虽然,...

java面试遇到过哪些难题(java面试太难)

今天给各位分享 今天,我们分析一下java程序员面试失败的5大原因,如果你以后想在java行业发展,请认真阅读以下内容。 1、说得太少特别是那些开放式的问题,如“请自我介绍一下”或“请讲一下你曾经解决过的复杂难题”HR会通过你对这些技术和非技术问题的回答来评估你对工作的激情...

计算机科学与技术专业是理学还是工学好(计算机科学与技术专业是理工类吗)

今天给各位分享 计算机科学与技术专业属于理学。计算机科学与技术是一门涉及计算机硬件和软件的学科,主要研究计算机科学理论和计算机应用技术方面的知识,培养学生在计算机领域的知识和技能。 该专业涉及计算机科学的各个方面,包括但不限于:计算机科学的基础理论:如数据结构、算法、计算机...

面试轰炸机就是这样吧

今天给各位分享 感谢程序汪铁粉的分享,当然程序汪也帮粉丝电话分析了一些问题,欢迎其他粉丝分享你的面试或学习经验,大家一起交流 眼界不够开阔 个人情况简介基本概况本人坐标新一线城市,某电(211)本科计算机软件工程专业科班,大三在校生,英语等级CET6,自学Java,...

java技术包括哪些(java技术是什么)

今天给各位分享 程序员是一种神秘的人类物种,Java程序员更是!今天给大家科普一下我在这么多年的Java后台开发后得出的经验,Java的知识很多,有很多在工作中不经常用的,我这里讲的都是些经常用的吧Java1、Java的运行(基础必备)。 起码了解底层IDE又是如何执行ja...

什么是java类(什么是javaee)

本篇文章给大家谈谈 Java 是近 10 年来计算机软件发展过程中的传奇,其在众多开发者心中的地位可谓“爱不释手”,与其他一些计算机语言随着时间的流逝影响也逐渐减弱不同,Java 随着时间的推移反而变得更加强大 从首次发布开始,Java 就跃到了 Internet 编程的前沿。...