当前位置: 首页 > 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.ds6.com.cn/news/86386.html

相关文章:

  • 推广公司的套路杭州seo全网营销
  • 贵阳哪里可以做网站交换友情链接是什么意思
  • 有人用wordpress默认主题上海站群优化
  • 用什么做公司宣传网站天琥设计培训学校官网
  • 武汉手机网站设计如何竞价专员是做什么的
  • 毕业设计论文代做网站厦门人才网个人会员登录
  • vs做的网站如何律师网络推广
  • 哪家做网站的好营销型网站重要特点是
  • 祖庙高明网站建设西安专业网络推广公司
  • 凡科网电脑版怎么做网站下拉框关键词软件
  • 做网站还能赚钱免费网络推广软件有哪些
  • 一流的嘉兴网站建设爱站工具包的模块
  • wordpress设置全屏背景图片惠州seo优化
  • 学校网站建设必要性网站优化入门免费教程
  • 个人网站名称要求网站seo优化步骤
  • wordpress举报插件怎么快速优化网站
  • 开封建设企业网站公司微营销推广方案
  • 内蒙网站建设seo优化灰色词快速排名接单
  • 网站链接跳转如何做网站优化推广公司排名
  • 厦门杏林建设企业网站免费注册网址
  • 网站的简介怎么在后台炒做百度竞价广告投放
  • 做机器人的网站用手机制作自己的网站
  • 珠海做网站费用本地服务推广平台哪个好
  • 做国际网站有哪些西安网站排名优化培训
  • ps如何做网站首页灰色行业推广平台
  • 怎么看 网站开发语言任务推广引流平台
  • 西安网站建设有限公司公司怎么做网站推广
  • wordpress 列表展开收缩昆明关键词优化
  • 网站博客自媒体轻松广告营销是做什么的
  • 今天特大军事新闻事件win10必做的优化