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

做微商有卖鞋子的网站吗网络服务昭通学院

做微商有卖鞋子的网站吗,网络服务昭通学院,重庆建设网站首页,做网站的图片分类记录spring中Transactional事务注解失效的六个场景 方法内的自调用 原因:通过this内部调用其他带有Transactional注解的方法,是通过this进行调用,并没有通过cglib代理对象进行调用,导致方法未被增强导致无法检测内部事务 解决方…

记录spring中Transactional事务注解失效的六个场景

方法内的自调用

原因:通过this内部调用其他带有@Transactional注解的方法,是通过this进行调用,并没有通过cglib代理对象进行调用,导致方法未被增强导致无法检测内部事务
解决方法:通过实现类内部自己注入自己的bean实现调用内部方法,以调用cglib增强的代理方法。或者通过AopContext.currentProxy()获取当前代理对象,使用之前需要引aspectjweaver依赖,并且需要在启动类上加入@EnableAspectJAutoProxy(exposeProxy=true)注解。或者在调用方加入@Transactional注解

方法是private的

原因:spring基于cglib进行AOP,cglib基于父子类来实现的,子类是代理类,父类是被代理类,如果父类某个方法是被private修饰,子类的类没法拿到父类的方法,所以导致方法无法被cglib代理,进而无法使用代理方法
解决方法:使用public

方法是final的

原因:因为代理需要重写方法,但是final方法无法被重写,所以无法被代理,而无法被代理所以就无法使用@Transactional注解来管理事务
解决方法:去掉final

单独的线程调用方法

原因:事务是跟连接绑定的,而一个连接是一个线程,新开了一个线程等于新开了一个事务,两个线程的事务管理不同

异常被吃掉

原因:事务回滚是根据异常进行的,手动进行异常处理不会回滚事务

类没被spring管理

原因:没进行bean注入,直接new无法使用spring的事务管理

管理事务的方式

1.使用编程式事务,beginTransaction(), commit(), rollback()
2.基于TransactionProxyFactoryBean的声明式事务管理
3.基于@Transactional的声明式事务管理
4.基于Aspectj AOP配置事务
5.使用分布式事务进行管理,2PC,3PC、TCC

如何避免事务失效

1.使用编程式事务,手动提交
2.避免慢查询
3.不要再事务中加入耗时操作,如rpc,大批量插入修改等

http://www.yayakq.cn/news/252992/

相关文章:

  • 网站免费正能量软件推荐怎么做网站站内搜索
  • 网站建设 今晟网络直播交友app开发
  • 建设网站材料可以下载吗seo谷歌
  • 做vr效果图的网站建设淘宝网站的人员组织结构
  • 企业网站实名审核中心肥西县建设局网站
  • 律师事务所网站建设北师大网页制作与网站建设期末考试
  • 怎么把源码做网站自助建站免费永久
  • 兰州做网站改版的公司做网站需要会的软件
  • 论坛网站制作seo推广软件哪个好
  • 莆田网站开发公司网站设计与推广
  • 网站关键词挖掘wordpress 笑话源码
  • 杭州公司网站设计云商网络综合服务
  • 苏州网站建设模版为进一步加强校园网站建设
  • 住房和城乡建设厅官方网站做网站用到的软件
  • 在线电子商务网站开发企业网站改版
  • 电商网站设计工作内容长春市工程咨询有限公司
  • 安陆网站制作公司河北康城建设集团网站
  • 台州房产网站建设建设银行培训网站
  • 网站弹窗在中间位置wordpress 新页面打开空白
  • 夫妻网站开发注册网站免费注册ins
  • 做网站销售好累建自己的o2o网站要多少钱
  • 甘肃 网站建设 开发 app最新商城系统
  • 软件开发网站有哪些问题人才市场招聘网站
  • 网站域名解析ip查询wordpress 媒体目录
  • 电子商务网站建设与管理的学后感专业建网站 成都
  • 单站点网站培训机构倒闭
  • 提供网站建设运营公司资质软件开发属于什么专业
  • 沈阳网站设计定制网站建设人工智能培训公司
  • 手机网站模板图片网站建设架构选型
  • 有一个做名片的网站深圳做网站公司那家比较好