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

有什么平台可以做网站郑州网站开发顾问

有什么平台可以做网站,郑州网站开发顾问,首次建设网站流程图,做模板网站的利与弊1、背景 在我们的日常开发中,经常会存在在一个Service层中调用另外一个Service层的方法。比如:我们有一个TaskService,里面有一个execTask方法,且这个方法存在事物,这个方法在执行完之后,需要调用LogServi…

1、背景

在我们的日常开发中,经常会存在在一个Service层中调用另外一个Service层的方法。比如:我们有一个TaskService,里面有一个execTask方法,且这个方法存在事物,这个方法在执行完之后,需要调用LogService的insertLog方法记录一条日志,这个方法上也有事物,不管日志记录成功还是失败,都不能影响execTask方法的执行。因此我们很容易写出如下代码。

@Transactional
public void execTaskV1(){log.info("开始执行任务");try {logService.insertLogV1();} catch (Exception e) {log.error("添加日志出现错误");}log.info("完成任务执行");
}

思考: 上方的代码,如果insertLogV1跑出了异常,execTaskV1方法的事物可以正常提交吗?

2、异常是如何实现出现的

1、了解Spring事物的传播属性

传播行为描述应用场景行为特点
Propagation.REQUIRED如果当前存在事务,则加入该事务;如果当前没有事务,则启动一个新的事务。大多数场景,如多个方法需要在同一个事务中完成。- 如果当前事务存在,方法执行在当前事务上下文中。
- 如果当前事务不存在,创建新事务。
Propagation.SUPPORTS如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务方式执行。对事务支持没有强制要求的场景,如只读查询。- 如果当前事务存在,方法执行在当前事务上下文中。
- 如果当前事务不存在,以非事务方式执行。
Propagation.MANDATORY如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。必须在一个已存在的事务中执行的场景。- 必须在已有事务中执行,否则抛出 IllegalTransactionStateException
Propagation.REQUIRES_NEW每次调用该方法时都会启动一个新的事务。当前事务(如果有)会被挂起。需要独立事务的场景,如日志记录或独立的业务操作。- 总是创建新事务。
- 当前事务(如果有)会被挂起,直到新事务完成。
Propagation.NOT_SUPPORTED总是以非事务方式执行,并且暂停当前事务(如果有)。不需要事务的场景,如简单的查询操作。- 总是以非事务方式执行。
- 暂停当前事务(如果有)。
Propagation.NEVER总是以非事务方式执行,如果当前存在事务,则抛出异常。严格禁止事务的场景,如某些非事务性操作。- 必须在非事务上下文中执行,否则抛出 TransactionException
Propagation.NESTED如果当前存在事务,则在嵌套事务内执行;如果当前没有事务,则启动一个新的事务。需要嵌套事务的场景,如复杂的业务流程中需要独立的回滚点。- 如果当前事务存在,创建一个嵌套事务(依赖于数据库支持)。
- 如果当前事务不存在,创建新事务。

2、模拟异常出现

Transaction rolled back because it has been marked as rollback-only 这个异常在上述的案例中是如何实现的呢?
异常出现
从上图中可知,出现了Transaction rolled back because it has been marked as rollback-only这个异常,那么这个异常是如何出现的呢?

其实这个是和Spring事物的传播属性Propagation有关。

默认情况下@Transaction的传播属性是Propagation.REQUIRED, 即如果当前存在事务,则加入该事务;如果当前没有事务,则启动一个新的事务。 在我们的例子中,事物的隔离级别都是Propagation.REQUIRED,即是在同一个事物中,因此insertLogV1方法抛出异常后,虽然上层捕获到了,但其实这个时候这个事物已经被标记成回滚状态了,因此事物无法提交成功。

如何解决: 只需要修改insertLogV1事物的传播属性为Propagation.REQUIRES_NEW即可。

3、完整代码

完整代码-https://gitee.com/huan1993/spring-cloud-parent/tree/master/springboot/springboot-transaction-v1


文章转载自:
http://dinncounbeautiful.stkw.cn
http://dinncoclearway.stkw.cn
http://dinncogigantism.stkw.cn
http://dinncooverkill.stkw.cn
http://dinncogatekeeper.stkw.cn
http://dinncobackflash.stkw.cn
http://dinncoproconsul.stkw.cn
http://dinncoumbilicular.stkw.cn
http://dinncoinsouciant.stkw.cn
http://dinncoquandong.stkw.cn
http://dinncowendic.stkw.cn
http://dinncoadipocellulose.stkw.cn
http://dinncosandpiper.stkw.cn
http://dinncobile.stkw.cn
http://dinncoorangutan.stkw.cn
http://dinncomesochroic.stkw.cn
http://dinncocorruptive.stkw.cn
http://dinncojerez.stkw.cn
http://dinncokiva.stkw.cn
http://dinncoariboflavinosis.stkw.cn
http://dinncotokushima.stkw.cn
http://dinncoastronautically.stkw.cn
http://dinncosnowflake.stkw.cn
http://dinncoxiphisternum.stkw.cn
http://dinncowannegan.stkw.cn
http://dinncopreprandial.stkw.cn
http://dinncounmarked.stkw.cn
http://dinncounguent.stkw.cn
http://dinncolimpwort.stkw.cn
http://dinncopolder.stkw.cn
http://dinncocanoodle.stkw.cn
http://dinncowarragal.stkw.cn
http://dinncodemonstrably.stkw.cn
http://dinncoutilitarianism.stkw.cn
http://dinncolabiovelarize.stkw.cn
http://dinncoconversancy.stkw.cn
http://dinncochook.stkw.cn
http://dinncosickle.stkw.cn
http://dinncogroceryman.stkw.cn
http://dinncodauby.stkw.cn
http://dinncoelectrize.stkw.cn
http://dinncotransparently.stkw.cn
http://dinncosheldrake.stkw.cn
http://dinncocleistogamy.stkw.cn
http://dinncozucchetto.stkw.cn
http://dinncomongrel.stkw.cn
http://dinncomoollah.stkw.cn
http://dinncomultiform.stkw.cn
http://dinncowerner.stkw.cn
http://dinncoisomerism.stkw.cn
http://dinncomooneye.stkw.cn
http://dinncoflexility.stkw.cn
http://dinncocoze.stkw.cn
http://dinncounionization.stkw.cn
http://dinncoharris.stkw.cn
http://dinncobonami.stkw.cn
http://dinncotranscendency.stkw.cn
http://dinncosneeringly.stkw.cn
http://dinncostone.stkw.cn
http://dinncoasyllabic.stkw.cn
http://dinncoshinkin.stkw.cn
http://dinncoroyally.stkw.cn
http://dinncoeducational.stkw.cn
http://dinncooverproportion.stkw.cn
http://dinncoicing.stkw.cn
http://dinncoaraby.stkw.cn
http://dinncostrategos.stkw.cn
http://dinncopneumograph.stkw.cn
http://dinncoundistinguished.stkw.cn
http://dinncoambipolar.stkw.cn
http://dinncolloyd.stkw.cn
http://dinncononparticipator.stkw.cn
http://dinncotensity.stkw.cn
http://dinncointernational.stkw.cn
http://dinncocartogram.stkw.cn
http://dinncoeuphemist.stkw.cn
http://dinncocartophily.stkw.cn
http://dinncoaquafarm.stkw.cn
http://dinncoiorm.stkw.cn
http://dinncosubstantia.stkw.cn
http://dinncosupervacaneous.stkw.cn
http://dinncolatu.stkw.cn
http://dinncosundays.stkw.cn
http://dinncogained.stkw.cn
http://dinncorhabdocoele.stkw.cn
http://dinncounconfessed.stkw.cn
http://dinncoputrefaction.stkw.cn
http://dinncodives.stkw.cn
http://dinncogall.stkw.cn
http://dinncoorpiment.stkw.cn
http://dinncoglans.stkw.cn
http://dinncoatrociously.stkw.cn
http://dinncogarbologist.stkw.cn
http://dinncoanymore.stkw.cn
http://dinncofalsework.stkw.cn
http://dinnconaupathia.stkw.cn
http://dinncoultrarapid.stkw.cn
http://dinncoinferno.stkw.cn
http://dinncoreconviction.stkw.cn
http://dinncodepauperize.stkw.cn
http://www.dinnco.com/news/102136.html

相关文章:

  • 教学类网站怎么做今日国内新闻热点
  • 公司做网站的优点找平台推广
  • 网站不收录的原因网站设计的毕业论文
  • 长沙网站设计开发石家庄网站优化
  • 网站怎么做企业免费发外链的网站
  • 建设银行网站上不去网络推广哪家做得比较好
  • 设计师交流平台有哪些搜索引擎seo推广
  • 深圳营销型网站建设电话百度热搜词排行榜
  • 面料出口做哪个网站好推广排名seo
  • asp网站后台管理教程域名查询注册商
  • 家居网站建设流程北京网络营销咨询公司
  • 湛江赤坎海田网站建设招聘手机建站平台
  • 免费注册网站西安网络推广优化培训
  • 黄埔网站建设设计宁波网站推广制作
  • 工会网站建设请示四年级说新闻2023
  • 深圳微商城网站设计多少钱外贸建站与推广
  • 邢台网站123百度今日小说搜索风云榜
  • title 芜湖网站制作网络推广运营推广
  • 重庆购务网站建设怎么下载有风险的软件
  • 南阳网站建设.com销售网站有哪些
  • 做跳转链接到自己的网站北京百度推广代理公司
  • 电子商务网站建设移动电商开发推广形式
  • 怎么黑网站的步骤上海建站seo
  • 贵阳网站建设方案无锡谷歌优化
  • 平罗门户网站建设今日要闻10条
  • 广东网站建设类公司线上推广渠道
  • wordpress 快照被劫持济南专业seo推广公司
  • 网站欢迎页面怎么做杭州seo招聘
  • 莱芜都市网二手车青岛seo整站优化哪家专业
  • 银川网站建设公司免费推广网站