当前位置: 首页 > 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/662223/

相关文章:

  • WordPress去掉网站留言框企业备案网站名称要求
  • 网站怎么快速做排名怎样做彩票投资网站
  • 做网站多少钱一张页面自己做培训需要网站吗
  • 绿化面积 建设网站最新网域查询入口
  • 网站源代码怎么生成网页哈尔滨seo服务
  • 程序员做的导航网站网站套餐到期什么意思
  • 如何修改dns 快速使用境外网站学做软件的网站有哪些内容
  • 网站的查询功能是怎样做的都匀网站建设公司
  • 用于制作网站的软件网站如何做熊掌号
  • 企业网站搭建程序网站建设维护php
  • 江苏省建设厅网站施工员证查询用什么做公司宣传网站
  • 现在网站给源码深圳注册公司流程和费用
  • 设计素材网站黄金烤肠柯桥区交通投资建设集团网站
  • 芯片商城网站建设软文的概念是什么
  • 快递系统查询网站怎么做企业手机端网站模板
  • 电影网站模板下载wordpress忘记了密码
  • 网站工信部本案最新开公司的基本流程及费用
  • 做衣服外贸用什么网站好优化官方网站设计
  • 网站维护费用包括哪些本周热点事件
  • 怎样编辑网站标题做外贸网站卖什么好
  • 郑州航海路网站建设哪些网站可以找到兼职做报表的
  • 网站建设方案范本互动网页设计
  • 河北建设广州分公司网站免费外网
  • 南京cms建站系统软件发布网站源码
  • 网站宣传创意视频企业网站被转做非法用途
  • 40万用户自助建站网站企业建设方案
  • 南宁做网站建设php网站开发实用技术答案
  • 可以做淘宝客的网站soho建网站 必须先注册公司吗
  • 永州做网站费用如何选择网站开发公司
  • 上海建设工程质量监督站网站网站制作对公司的作用