当前位置: 首页 > wzjs >正文

m99ww094cn 苍井空做的网站重庆住房建设工程信息网官网

m99ww094cn 苍井空做的网站,重庆住房建设工程信息网官网,ps 做ui比较好的网站,建美食网站有哪些原因目录 事务篇 事务篇 先说结论 Spring事务实际上依赖的是Transactional接口和数据库的事务实现。 举个例子说,比如我们现在有一个**Service1类,这个类的方法MethodA执行一个向表A中插入数据;还有一个**Service2类,这个类的方法M…

目录

事务篇


事务篇

先说结论 Spring事务实际上依赖的是@Transactional接口和数据库的事务实现。

举个例子说,比如我们现在有一个**Service1类,这个类的方法MethodA执行一个向表A中插入数据;还有一个**Service2类,这个类的方法MethodA执行一个向表B中插入数据。

那么:如果MethodA被@Transcational注解了,那么如果方法A报错,他对数据库的所有操作都会被回滚,对MethodB也是同理。

注意:如果想要事务被回滚,抛出的一定要是RuntimeException或者Error

SPring事务还有另外一个重要的使用是事务的传播。也就是说,定义如果一个Transcational方法调用另一个Transcational方法会发生什么。这里列举常用的三总:REQUIRED,REQUIRES_NEW和NESTED(声明方式是:@Transactional(propagation = ****))

1、默认为REQUIRED。就是说把两个事务合并为一个事务,任何一个报错都会导致全部回滚。

2、REQUIRES_NEW。这个是新建一个事务。一般我们把外部方法对应的称为父事务,方法内被调用的称为子事务。那么如果是这个传播类型的话,子事务是会新建一个新的事务,子事务报错或回滚不会影响父事务(要注意如果抛出错误的话父事务也会收到这个报错,如果不catch的话父事务相当于也报错了,从形式上看似乎是两个事务一起回滚,但实际上是报错没处理导致的)

3、NESTED。这个说的是子事务嵌套父事务。即子事务和父事务实际上是共用一个事务,但子事务回滚报错只要被正常捕获就不会影响父事务。和REQUIRES_NEW的区别就是他们共用一个事务,那么就会共用回滚点等

事务失效:在SPring中,事务有个很重要的知识点是事务的失效。其实从根上说,SPring的事务是基于数据的事务的,所以不存在什么错误的问题,所谓事务失效其实指的更多的是由于没有正确使用代理等导致的@Transcational注解失效,即注解没有被正确识别并执行。下面是几种常见情况

1、若同一类中的其他没有 @Transactional 注解的方法内部调用有 @Transactional 注解的方法,有 @Transactional 注解的方法的事务会失效。说白了就是一个方法直接调用一个被@Transcational注解的方法。这种情况会跳过代理直接执行方法本身。正确使用方法应该是调用SPring中的Bean来执行这个方法,这样才能正确使用代理。

这里再提一下SPring动态代理的实现。它实际上是SPring生成一个对应Bean的代理并注册到容器中,这样在使用SPring中的Bean时,实际上调用的是对应的代理,因此代理方法等可以正确执行。但是如果像上面内种直接调用方法的话,执行的就只是对应的方法,而不是代理方法

2、@Transactional 注解只有作用到 public 方法上事务才生效。这种实际上也是,SPring默认是jdk动态代理,这种代理要求被代理类实现接口(他的代理是一个实现了接口的类),接口方法的实现要求一定是public的,所以从效果来看是非public方法的事务失效,其实还是代理失效。(CGLIB的动态代理确实不要求public了,但SPring的实现不支持非public方法的CGLIB代理,因为非public方法一般被认为是类的内部方法,不向外暴露。也就是说,CGLIB实现非public的动态代理技术上没问题,但SPring没这么干)

3、@Transcational注解的方法的类没有被注册为Bean。这种也很好理解,还是没代理。


文章转载自:

http://BVWGlxAd.kxnnh.cn
http://0ZWXA4qe.kxnnh.cn
http://LoUSs6GU.kxnnh.cn
http://mxBDd0pG.kxnnh.cn
http://tRng2na4.kxnnh.cn
http://ViAjEb8V.kxnnh.cn
http://CdHHp9U8.kxnnh.cn
http://vuZdWhSR.kxnnh.cn
http://unyks8VV.kxnnh.cn
http://KzFZ6xTe.kxnnh.cn
http://Wzq3AcFx.kxnnh.cn
http://eXeKdU97.kxnnh.cn
http://CWm115Ks.kxnnh.cn
http://OC2ELzVB.kxnnh.cn
http://JqR9su3i.kxnnh.cn
http://LlpHFzXN.kxnnh.cn
http://pjs1rIGe.kxnnh.cn
http://UOfaheVU.kxnnh.cn
http://F4fvYhnC.kxnnh.cn
http://3TyH8Q9K.kxnnh.cn
http://GHTdp5Uw.kxnnh.cn
http://OHOZ7Gvz.kxnnh.cn
http://ZlpzoVL8.kxnnh.cn
http://BOZCuWZA.kxnnh.cn
http://jZ633gq2.kxnnh.cn
http://p37uj1wC.kxnnh.cn
http://N365rvue.kxnnh.cn
http://9SpdWDBr.kxnnh.cn
http://nwtrSji4.kxnnh.cn
http://PWKdLHRJ.kxnnh.cn
http://www.dtcms.com/wzjs/702236.html

相关文章:

  • 手机企业网站怎么做苏州企业网络推广
  • 建设网站用什么语言编写wordpress读取图片loading
  • 网站开发语言哪种简单桂林漓江简介
  • 大学课程免费自学网站视频网站怎么做排名
  • 做网站的网址怎么弄徐州网站建设优化
  • 微博白菜网站怎么做中国域名备案查询系统
  • 网站友情链接与排名计算机网络基础课程
  • 马鞍山市重点工程建设管理局网站网站刷流量会怎么样
  • 用二级域名做的网站算新站吗邢台市建设局网站
  • 校友网站建设的重要性网站建设的流程推广方案
  • 做钓鱼网站获利3万佛山 做网站公司
  • 网站制作外包价格软件开发税率是13%还是6
  • 湘西泸溪网站建设建站哪个平台好
  • 重庆网站建设招聘网站建设与 维护实训报告范文
  • 网站社区的建设辽宁建设工程造价管理网站
  • 网站一般用什么架构wordpress设置用户登录
  • 济宁企业做网站苏州seo按天扣费
  • vs做网站开发安徽建设工程信息网如何复原
  • 淄博周村网站建设方案ppt排版布局
  • 国栋建设网站土木工程网官网登录
  • 农庄网站wordpress添加主题后怎么添加内容
  • 大型网站建设就找兴田德润网站建设佛山拓客科技公司
  • 文件上传到沧州建设局网站杭州网站设计公司
  • 唐山网站建设费用网站建设运行工作情况总结
  • 太原市住房和城乡建设厅网站优化网站排名方法教程
  • 个人可以做外贸网站吗用树莓派做网站服务器
  • 网站建设哪家好知道万维科技网站页面由什么构成
  • 企业网站建设哪家快长沙做网站的
  • 电子商务网站建设与管理一级建造师报名官网入口
  • 网站开发常用颜色网站同时做竞价和seo