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

赣州省住房和城乡建设厅网站大气网站首页模板

赣州省住房和城乡建设厅网站,大气网站首页模板,宝应网站开发,企业信息管理系统实训报告在 Spring 框架里,事务传播行为用于定义在嵌套事务场景下,新事务与现有事务之间的交互方式。Spring 定义了 7 种事务传播行为,这些行为由org.springframework.transaction.annotation.Propagation枚举类提供。以下是对这些传播行为的详细介绍…

在 Spring 框架里,事务传播行为用于定义在嵌套事务场景下,新事务与现有事务之间的交互方式。Spring 定义了 7 种事务传播行为,这些行为由org.springframework.transaction.annotation.Propagation枚举类提供。以下是对这些传播行为的详细介绍:

1. Propagation.REQUIRED(默认值)

  • 基本含义:这是最常用的事务传播行为。当一个带有REQUIRED传播行为的方法被调用时,如果当前已经存在一个事务,那么该方法会加入到这个现有的事务中执行;如果当前没有事务,那么它会创建一个新的事务来执行自身的操作。
  • 实际场景示例:假设你有一个电商系统,有一个OrderService类的createOrder方法和一个InventoryService类的decreaseInventory方法。createOrder方法用于创建订单,decreaseInventory方法用于减少商品库存。createOrder方法开启了一个事务,在其内部调用了decreaseInventory方法,由于decreaseInventory方法默认传播行为是REQUIRED,它会加入到createOrder方法的事务中。这样,如果在整个过程中出现异常,整个订单创建和库存减少的操作都会回滚,保证了数据的一致性。

2. Propagation.SUPPORTS

  • 基本含义:当使用SUPPORTS传播行为时,如果当前存在事务,该方法会加入到这个事务中执行;如果当前没有事务,那么它会以非事务的方式执行。也就是说,这个传播行为对事务是 “支持” 的,但不是强制要求必须在事务中执行。
  • 实际场景示例:有一个UserService类的getUserInfo方法,这个方法只是用于查询用户信息,通常情况下不需要事务。但如果在一个已经存在事务的方法中调用了getUserInfo方法,它可以加入到这个事务中。比如在一个处理用户订单的事务中,需要查询用户的基本信息来完善订单,此时getUserInfo方法就可以加入到这个订单处理的事务中。

3. Propagation.MANDATORY

  • 基本含义MANDATORY传播行为要求当前必须存在一个事务,该方法才能执行。如果当前没有事务,会抛出异常。它强调了事务的强制性。
  • 实际场景示例:在一些涉及到重要数据更新且必须保证原子性的操作中可以使用。例如,一个金融系统中的TransferService类的transferMoney方法用于进行资金转账操作,这个操作必须在事务中进行,因为涉及到资金的增减。如果在调用这个方法时没有事务,就会抛出异常,防止出现数据不一致的情况。

4. Propagation.REQUIRES_NEW

  • 基本含义:无论当前是否存在事务,REQUIRES_NEW传播行为都会创建一个新的事务来执行该方法。如果当前已经存在一个事务,那么会将当前事务挂起,等新事务执行完毕后,再恢复原来的事务继续执行。
  • 实际场景示例:假设你有一个日志记录的方法LogService类的recordLog方法,即使主业务方法出现异常回滚,日志记录也应该是独立的,不应该受到主业务事务的影响。此时可以将recordLog方法的传播行为设置为REQUIRES_NEW,这样它会创建一个新的事务来记录日志,与主业务事务相互独立。

5. Propagation.NOT_SUPPORTED

  • 基本含义:使用NOT_SUPPORTED传播行为的方法会以非事务的方式执行。如果当前存在事务,会将当前事务挂起,等该方法执行完毕后,再恢复原来的事务继续执行。
  • 实际场景示例:一些对性能要求较高且不需要事务保证的操作可以使用这种传播行为。比如一个CacheService类的updateCache方法,用于更新缓存数据,这个操作本身不需要事务,而且如果在一个事务中进行可能会影响性能。当在一个事务方法中调用updateCache方法时,会将事务挂起,以非事务方式更新缓存。

6. Propagation.NEVER

  • 基本含义NEVER传播行为要求该方法必须以非事务的方式执行。如果当前存在事务,会抛出异常。它与MANDATORY相反,是坚决不允许在事务中执行。
  • 实际场景示例:对于一些简单的查询操作,并且明确不希望在事务中执行的情况可以使用。比如一个StatisticsService类的getStatisticsData方法,只是从数据库中查询统计数据,不需要事务保证,使用NEVER传播行为可以确保它不会在事务中执行。

7. Propagation.NESTED

  • 基本含义:如果当前存在事务,NESTED传播行为会在当前事务中创建一个嵌套事务。嵌套事务是当前事务的一个子事务,有自己独立的保存点。如果嵌套事务执行失败,可以只回滚嵌套事务,而不影响外部事务;如果外部事务回滚,嵌套事务也会回滚。如果当前没有事务,它会创建一个新的事务,和REQUIRED类似。
  • 实际场景示例:在一个复杂的业务流程中,有一个主业务方法MainService类的mainBusiness方法,其中包含了一些子操作,这些子操作可以使用NESTED传播行为。比如在主业务中处理订单时,可能会有一个子操作是发送通知邮件,这个发送邮件的操作可以作为一个嵌套事务。如果发送邮件失败,只回滚这个子事务,不影响整个订单处理的主事务。

文章转载自:

http://H8vusuUF.bsjxh.cn
http://HlcYiR27.bsjxh.cn
http://d3TZ9Dyg.bsjxh.cn
http://XCG2O5V0.bsjxh.cn
http://gBMGO0wE.bsjxh.cn
http://8j7IOgJh.bsjxh.cn
http://VJyGvONg.bsjxh.cn
http://8rbJCvOA.bsjxh.cn
http://Jg8gstwt.bsjxh.cn
http://SuNG7m3j.bsjxh.cn
http://wqI7Do0O.bsjxh.cn
http://lAcxWJbg.bsjxh.cn
http://cNZvtGdo.bsjxh.cn
http://QOeq9LSm.bsjxh.cn
http://p2IpnxQf.bsjxh.cn
http://rtnPLW4R.bsjxh.cn
http://O4j7JBOc.bsjxh.cn
http://4A7TSeES.bsjxh.cn
http://M4JEntKp.bsjxh.cn
http://JfNu0Rpt.bsjxh.cn
http://Pa9ZuiXK.bsjxh.cn
http://3sru4914.bsjxh.cn
http://8a5xsiQk.bsjxh.cn
http://LtYjpb6Q.bsjxh.cn
http://5pJw7RgU.bsjxh.cn
http://3SKAdxch.bsjxh.cn
http://n4nyYt84.bsjxh.cn
http://oebB0ZeH.bsjxh.cn
http://1gNKpmRJ.bsjxh.cn
http://eA93dOPN.bsjxh.cn
http://www.dtcms.com/wzjs/698140.html

相关文章:

  • 做网站一定要域名吗网页设计素材模版
  • 如何免费注册自己的网站找外贸工作哪个网站好
  • 资源seo网站优化排名嘉兴网站建设科技有限公司
  • 上海龙华医院的网站建设公司网页设计文案
  • 汝州住房和城乡建设局网站网站发稿平台
  • 阿里云网站电子商务平台的功能有哪些
  • linux视频播放网站南通网站建设规划
  • 旅行社网站建设策划书网站流量统计分析工具
  • 28网站开发东营建设信息网站
  • 网站建设开题报告ppt做经销找厂家好的网站
  • 开网站做代销好平台类网站建设胡方案明细
  • 南阳网站怎么推广定制旅游网站开发
  • 银河盛世网站建设建设网站需要租用服务器
  • 网站开发任务单百度文库mysql 怎么存储wordpress
  • 怎么做一个网站送给女朋友万盛经开区规划建设局网站
  • 织梦网站统计东莞横沥新闻今天
  • 自己不会代码让别人做网站怎么管理wordpress主机建站
  • 福州网站制作外包南昌seo搜索排名
  • php mysql网站后台源码设计一个网页要多少钱
  • 网站开发需求说明书辽宁建设工程信息网开标流程
  • 怎么做网站推广的步骤做化妆品注册和注册的网站有哪些
  • 庆元县建设局网站网站变app
  • 营销型网站架构做网站什么语言
  • 网站挑错百度指数官网查询
  • 乡镇网站建设内容规划舆情报告2023
  • 自己做的网站怎么显示表格边框网站建设任务执行书
  • 手机网站建设官网宿迁房产网二手房出售
  • 网站建设 爱诚科技公司wordpress 鼠标跟随
  • 百度竞价什么时候开始的昆明优化网站
  • 光谷企业网站建设抖音网站