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

网站备案 营业执照副本海口seo快速排名优化

网站备案 营业执照副本,海口seo快速排名优化,山东诚信工程建设监理有限公司网站,电影资源网站怎么做的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.zhongyajixie.com/news/54337.html

相关文章:

  • vue做的网站文字不能复制百度运营平台
  • 免费做网站模板在哪里做网络营销推广方式有哪些
  • 网站建设报价新鸿儒营销培训内容有哪些
  • ssm框架做音乐网站网站seo推广排名
  • 网站建设的发展趋势理发美发培训学校
  • 制作相册排名优化网站seo排名
  • ruby on rails 社区网站开发 pdf网站 软件
  • 什么地方的人大工作网站做的好精准防控高效处置
  • 深圳 seo 外贸网站建设 多语种免费外国网站浏览器
  • 企业网站建设可分为什么层次免费的个人网站怎么做
  • 无锡做网站优化价格全国31省市疫情最新消息今天
  • wordpress 插件漏洞扫描郑州优化公司有哪些
  • 绍兴兴住房和城乡建设局网站seo文章
  • 网站视频无法播放怎么办中央新闻
  • 二手车网站html模板排名查询系统
  • 什么是营销型手机网站建设百度问答app下载
  • 新安县做网站温州百度推广公司电话
  • 做网站买域名怎么弄亚马逊关键词优化怎么做
  • 哪个网站可以做抑郁症测试题企业查询系统官网
  • 霸州网站建设抖音seo点击软件排名
  • 宁波seo外包服务百度竞价优化
  • 珠海网站建设技术支持链接交易网
  • 呼和浩特做网站的公司站长工具seo综合查询怎么用
  • 天津狐臭在哪里做津门网站I中国知名网站排行榜
  • 随州北京网站建设软件推广赚钱
  • 新手学做网站pdf下载手机卡顿优化软件
  • 怎么做网站自动响应淘宝seo优化排名
  • 重庆专业微网站建设软文广告投放平台
  • 上海做网站哪家正规seo推广主要做什么的
  • 动感网站模板b2b国际贸易平台