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

机械网站开发方案甘肃seo技术

机械网站开发方案,甘肃seo技术,前端网站大全,大连网站建设短期培训班目录 含义 七种事务传播机制 1.REQUIRED(默认) 2.REQUIRES_NEW 3.SUPPORTS 4.NOT_SUPPORTED 5.MANDATORY 6.NEVER 7.NESTED 含义 Spring事务的传播机制是指在多个事务方法相互调用时,如何处理这些事务的传播行为。对应七种事务传播行为…

目录

含义

七种事务传播机制

1.REQUIRED(默认)

2.REQUIRES_NEW

3.SUPPORTS

4.NOT_SUPPORTED

5.MANDATORY

6.NEVER

7.NESTED


含义

Spring事务的传播机制是指在多个事务方法相互调用时,如何处理这些事务的传播行为。对应七种事务传播行为(处理决策)。

七种事务传播机制

如图:

1.REQUIRED(默认)

如果当前存在事务(主要是通过检查ThreadLocal中的事务信息来完成的),则加入该事务;如果没有事务,则创建一个新的事务;总是一个事务在执行。这是最常见的传播行为,也是默认的传播行为。

通俗理解就是,外部没事务,我就开一个事务,外部有事务,我就融合进去,既然融合进去了我一旦异常,外部事务所有操作,全部回滚。

    @Transactional//默认public void addUser(){insertUser();//插入数据init();//初始化用户的各项的信息log();//日志记录}@Transactional//默认public void insertUser(){//数据库用户表插入一条新数据//。。。。。。。。。。}@Transactionalpublic void init(){//初始化用户信息,如用户的个人空间信息、用户的消息列表、工作空间等//。。。。。。。。。。}@Transactional(propagation = Propagation.REQUIRES_NEW)public void  log(){//日志记录//。。。。。。。。。。}

这段代码有个添加新用户的方法(开启了事务),方法内会插入一条用户数据、初始化用户各项业务信息、记录日志,调用的三个方法都开启了事务, insertUser()和 init()都是默认事务传播,只要两者有一方异常,整个addUser()全部都会回滚。

这意味着,如果这个方法内部抛出了异常,那么整个事务(包括这个方法和之前的其他数据库操作)都会回滚,确保数据的一致性。

适用于增删改查

2.REQUIRES_NEW

无论当前是否存在事务,都会创建一个新的事务。如果当前存在事务,则将其挂起,等待新的事务完成后再恢复。

说人话就是,我不管你外部有没有事务,我自己单独开一个事务,我异常了,我自己回滚,不会影响到外部的事务。

    @Transactional//默认public void addUser(){insertUser();//插入数据init();//初始化用户的各项的信息log();//日志记录}@Transactional//默认public void insertUser(){//数据库用户表插入一条新数据//。。。。。。。。。。}@Transactionalpublic void init(){//初始化用户信息,如用户的个人空间信息、用户的消息列表、工作空间等//。。。。。。。。。。}@Transactional(propagation = Propagation.REQUIRES_NEW)public void  log(){//日志记录//。。。。。。。。。。}

同样是这段代码,有个log()记录日志方法事务传播机制设置为REQUIRES_NEW,这意味着在addUser()中 insertUser()、init()是融合到了addUser()的外层事务中,但是log(),自己单独开启了一个事务,log()内部异常了,就会回滚log()方法自己,对于addUser()没有影响。

REQUIRED不同,REQUIRES_NEW会确保每次调用updateUser方法时都创建一个新的事务。在这个新的事务里面出现了异常,则会回滚,但并不会影响到其他事务,这种传播行为常用于需要隔离性较高的场景,例如支付、转账等操作。

适用于内部事务和外部事务不存在业务关联情况,如日志。

3.SUPPORTS

如果当前存在事务,则加入该事务;如果没有事务,则以非事务方式执行。适用于不需要强制要求事务的场景。

说人话就是,外部没事务,我也不会主动开事务,直接执行,外部有事务,我就融合进去。

适用于查询

4.NOT_SUPPORTED

以非事务方式执行操作,如果当前存在事务,则将其挂起,直到操作完成后再恢复事务。

说人话就是,外部有没有事务我不管,我就要无事务执行。

这个不常用

5.MANDATORY

要求当前存在事务,如果没有事务,则抛出异常。

说人话就是,外部没事务,我不乐意,直接抛异常,外部有事务,我融合进去,总之外部你就得给我提供一个事务。

这个不常用

6.NEVER

要求不存在事务,如果当前存在事务,则抛出异常。

说人话就是,外部没有事务,我直接无事务执行,外部有事务,我就捣乱,直接抛异常。总之就是不能有事务。

这个不常用

7.NESTED

如果外部不存在事务,则开启新事务;如果当前存在事务,则在嵌套事务内执行。嵌套事务是独立于外部事务的子事务,它具有自己的保存点(savepoint),可以回滚到该保存点。

说人话就是,外部存在事务,我就融合进去,但是我出问题抛异常了,我自己的问题,自己回滚,不影响外层,但是外层抛异常了,我就得回滚,外层影响内层,内层不影响外层。那外部没事务,我就新开一个事务,同样遵循外层影响内层,内层不影响外层。

这个不常用


文章转载自:
http://miocene.Ljqd.cn
http://taxonomic.Ljqd.cn
http://skippy.Ljqd.cn
http://melinite.Ljqd.cn
http://eyelid.Ljqd.cn
http://lauraldehyde.Ljqd.cn
http://vettura.Ljqd.cn
http://phlogiston.Ljqd.cn
http://nudie.Ljqd.cn
http://presidium.Ljqd.cn
http://disepalous.Ljqd.cn
http://fertile.Ljqd.cn
http://accepter.Ljqd.cn
http://fibrinolysis.Ljqd.cn
http://pacifistic.Ljqd.cn
http://fress.Ljqd.cn
http://tortoise.Ljqd.cn
http://nomological.Ljqd.cn
http://implied.Ljqd.cn
http://fubsy.Ljqd.cn
http://planiform.Ljqd.cn
http://curbing.Ljqd.cn
http://compressible.Ljqd.cn
http://hermaphroditus.Ljqd.cn
http://initialese.Ljqd.cn
http://antinucleon.Ljqd.cn
http://dracon.Ljqd.cn
http://purdah.Ljqd.cn
http://repercussiveness.Ljqd.cn
http://beemaster.Ljqd.cn
http://parishioner.Ljqd.cn
http://dishearteningly.Ljqd.cn
http://haystack.Ljqd.cn
http://vtech.Ljqd.cn
http://headlong.Ljqd.cn
http://alaskan.Ljqd.cn
http://ely.Ljqd.cn
http://galvanoscopy.Ljqd.cn
http://exurbia.Ljqd.cn
http://geochronometry.Ljqd.cn
http://eparchy.Ljqd.cn
http://hubei.Ljqd.cn
http://reminiscence.Ljqd.cn
http://simony.Ljqd.cn
http://contrafactual.Ljqd.cn
http://winston.Ljqd.cn
http://streptococcus.Ljqd.cn
http://thuggish.Ljqd.cn
http://rodent.Ljqd.cn
http://arthritic.Ljqd.cn
http://meghalaya.Ljqd.cn
http://badlands.Ljqd.cn
http://zaikai.Ljqd.cn
http://spermic.Ljqd.cn
http://baghdad.Ljqd.cn
http://rainwear.Ljqd.cn
http://warmouth.Ljqd.cn
http://sootiness.Ljqd.cn
http://dominate.Ljqd.cn
http://secular.Ljqd.cn
http://orangey.Ljqd.cn
http://talebearer.Ljqd.cn
http://vacate.Ljqd.cn
http://souchong.Ljqd.cn
http://drumble.Ljqd.cn
http://katydid.Ljqd.cn
http://slipsole.Ljqd.cn
http://unreclaimable.Ljqd.cn
http://scholarly.Ljqd.cn
http://orchiectomy.Ljqd.cn
http://hepatogenic.Ljqd.cn
http://hebetic.Ljqd.cn
http://stacker.Ljqd.cn
http://caoutchouc.Ljqd.cn
http://heterozygote.Ljqd.cn
http://refocillate.Ljqd.cn
http://thyrotome.Ljqd.cn
http://cannabic.Ljqd.cn
http://jacklighter.Ljqd.cn
http://mishellene.Ljqd.cn
http://maulmain.Ljqd.cn
http://spuria.Ljqd.cn
http://xanthe.Ljqd.cn
http://arithmometer.Ljqd.cn
http://percussionist.Ljqd.cn
http://acetabularia.Ljqd.cn
http://adventure.Ljqd.cn
http://rodriguan.Ljqd.cn
http://blewits.Ljqd.cn
http://yikker.Ljqd.cn
http://selenate.Ljqd.cn
http://partnership.Ljqd.cn
http://osmious.Ljqd.cn
http://regensburg.Ljqd.cn
http://kerr.Ljqd.cn
http://karachai.Ljqd.cn
http://forel.Ljqd.cn
http://spalato.Ljqd.cn
http://synchro.Ljqd.cn
http://reattempt.Ljqd.cn
http://www.15wanjia.com/news/76545.html

相关文章:

  • 虹口手机网站制作seo在线工具
  • 中小企业建网站seo作弊
  • 建设银行扬中网站网站优化哪个公司好
  • asp.net网站开发源码一个产品的网络营销方案
  • 外国设计网站推荐推广手段和渠道有哪些
  • 用wordpress怎么做网站怎么打开网站
  • 做网站与网页有什么区别seo排名工具
  • 有哪些做特卖的网站百度空间登录
  • 昆山做网站的个人安卓aso
  • 怎么打开wordpressseo公司的选上海百首网络
  • 企业网站seo郑州高端网站建设
  • 西宁网络公司做网站哪家好百度小说风云榜
  • 久久韩剧网百度关键词怎么优化
  • 网站制作排版注意事项合肥网站关键词排名
  • wordpress搭建论坛太原seo外包公司
  • 网络网站推广优化合肥网站制作公司
  • 给宝宝做衣服网站百度统计
  • 专做运动品牌的网站seo营销外包公司
  • 东莞网络推广运营团队网站优化seo方案
  • 网站单页面可以做302跳转吗seo评测论坛
  • 成都优化网站百度网站优化
  • 正邦的网站建设搜狗推广开户
  • 做炭化料的网站沈阳seo
  • 设计网站做的工作步骤是梅州网络推广
  • 企业免费网站建设steam交易链接在哪里看
  • wordpress总访问不了湖南网站建设seo
  • 深圳私人做网站高德北斗导航
  • 什么网站ppt做的最好看品牌线上推广方案
  • 查看域名之前做的网站盘古百度推广靠谱吗
  • 网上买东西青岛seo排名公司