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

网站建设行业怎么样宣城做网站公司

网站建设行业怎么样,宣城做网站公司,无锡高端网站建设公司哪家好,郑州大学科技园手机网站建设Spring事务失效的几种情况及其解决方案 方法权限修饰符不是public Transactional 使用的是 Spring AOP 实现的,而 Spring AOP 是通过动态代理实现的,而 Transactional 在生成代理时会判断,如果方法为非 public 修饰的方法,则不生…

Spring事务失效的几种情况及其解决方案

方法权限修饰符不是public

@Transactional 使用的是 Spring AOP 实现的,而 Spring AOP 是通过动态代理实现的,而 @Transactional 在生成代理时会判断,如果方法为非 public 修饰的方法,则不生成代理对象,这样也就没办法自动回滚事务了,它的部分实现源码如下:

protected TransactionAttribute computeTransactionAttribute(Method method, Class<?> targetClass) {// Don't allow no-public methods as required.// 非 public 方法,设置为 nullif (allowPublicMethodsOnly() && !Modifier.isPublic(method.getModifiers())) {return null;}// 后面代码省略....}

解决方案:

将方法的权限修饰符改为 public 即可

Try/Catch

当程序中出现了 try/catch 代码时,事务不会自动回滚,这是因为 @Transactional 注解在其实现时,需要感知到异常才会自动回滚,而用户自行在代码中加入了 try/catch 之后,@Transactional 就无法感知到异常了,那么也就不能自动回滚事务了。

解决方案:

将异常重新抛出
在这里插入图片描述

Final修饰符

spring 事务底层使用了 aop,也就是通过 jdk 动态代理或者 cglib,帮我们生成了代理类,在代理类中实现的事务功能。但如果某个方法用 final 修饰了,那么在它的代理类中,就无法重写该方法,而添加事务功能。

注意:如果某个方法是 static 的,同样无法通过动态代理,变成事务方法。

解决方案:

不使用final修饰符

同一个类内部调用

在同一个类中的方法直接内部调用时,直接调用了 this 对象的方法,没有使用代理对象的方法,因此会导致事务失效。

解决方案

在该 Service 类中注入自己

此时注入的就是代理类

在该 Service 类中使用 AopContext.currentProxy() 获取当前实例的代理对象。

数据库不支持事务

当我们在程序中添加了 @Transactional,相当于给调用的数据库发送了:开始事务、提交事务、回滚事务的指令,但是如果数据库本身不支持事务,比如 MySQL 中设置了使用 MyISAM 引擎,因为它本身是不支持事务的,这种情况下,即使在程序中添加了 @Transactional 注解,那么依然不会有事务的行为,也就不会执行事务的自动回滚了。

解决方案:

设置 MySQL 的引擎为 InnoDB 就可以解决问题了,因为 InnoDB 是支持事务的

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

相关文章:

  • phpcms调用网站名称wordpress怎么改搜索引擎
  • 菏泽去哪了做网站网站建设素材
  • 一起做网站逛市场佛山竞价账户托管
  • 二手车网站源码wordpress cpu负载过高
  • php公司网站微信公众平台是什么
  • 西安哪里可以做网站中国那个公司的网站做的最好
  • 网站设计需要哪些技能wordpress h5幻灯片
  • 自己的域名搭建网站网页游戏平台软件
  • 成都网站建设公司推荐嘉兴网站推广排名
  • 网站首页结构布局知名中文网站建设
  • 国外中文网站排行怎么建设网站临汾
  • 网站的登录界面是怎么做的wordpress 标签链接
  • c语言建网站合作网站制作
  • 山东济南网站建设公司排名赣州新闻联播直播
  • 精品课程网站建设毕业设计网站优化之站外优化技巧
  • 东乡网站建设成都广告公司黑蚁
  • 建筑网站叫什么盘太极seo
  • 经典网站建设方案网站死链接查询
  • 定制型网站设计价格石家庄网站免费制作
  • 建设的网站如何让用户注册濮阳住房建设厅网站
  • c 鲜花店网站建设合肥房产网新楼盘价格
  • 中国网站备案取消网站建设公司服务
  • 网站建设更新不及时网站怎么做外部链接
  • 求推荐公司网站建设个人博客网站备案
  • 深圳附近建站公司wordpress 手机适应
  • 百度网站推广网络wordpress原生相册
  • ASP.NET网站建设实战特色的佛山网站建设
  • 郑州模板建站平台龙岩做网站公司哪家好
  • 黄冈网站推广优化找哪家工信部网站icp备案
  • seo建站优化推广网站排行