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

科技类公司网站怎么设计全网营销国际系统

科技类公司网站怎么设计,全网营销国际系统,网站在线客服源码,网站建设完成确认函事务传播行为指的就是当一个事务方法被另一个事务方法调用时这个事务方法应该如何进行。 Spring中有七种事务的传播行为,分别是:required、requires_new、supports、not_supported、nested、mandatory、never required 如果当前没事务,就新…

事务传播行为指的就是当一个事务方法被另一个事务方法调用时这个事务方法应该如何进行。

Spring中有七种事务的传播行为,分别是:required、requires_new、supports、not_supported、nested、mandatory、never

required

如果当前没事务,就新建一个事务;如果已经存在事务,则加入该事务

外围A方法,内围B、C方法required

  • A方法无事务(外围方法无事务,内围方法独立回滚,互不干扰)

    • A方法抛出异常,B、C不会回滚

    • C方法抛出异常,C单独回滚,A、B不会回滚

  • A方法有事务 (内外围方法属于同一个事务,一个回滚,全部回滚)

    • A方法抛出异常,A回滚,B、C也回滚

    • C方法抛出异常,C回滚,A感知到异常,A回滚,B也回滚

    • C方法抛出异常并被Acatch,C回滚,A未感知异常,但A、B、C同事务,A回滚,B也回滚

required_new

新建事务

外围A方法,内围B、C方法required_new

  • A方法无事务(外围方法无事务,内围方法独立回滚,互不干扰,同required外围方法无事务)

    • A方法抛出异常,B、C不会回滚

    • C方法抛出异常,C单独回滚,A、B不会回滚

  • A方法有事务 (内围方法之间、内外围方法之间均相互独立,互不干扰,除非内围方法抛出异常被外围方法感知到)

    • A方法抛出异常,B、C不会回滚

    • C方法抛出异常,C回滚,A感知到异常并抛出,A回滚,B不回滚

    • C方法抛出异常并被Acatch,C回滚,A未感知异常,A不回滚,B不回滚

nested

如果当前没有事务,就新建一个事务;如果已经存在事务,则作为该事务的子事务

外围A方法,内围B、C方法nested

  • A方法无事务(外围方法无事务,内围方法独立回滚,互不干扰,同required外围方法无事务)

    • A方法抛出异常,B、C不会回滚

    • C方法抛出异常,C单独回滚,A、B不会回滚

  • A方法有事务 (外围方法回滚,内围方法全部回滚;内围方法回滚,不影响外围方法和其他内围方法,除非内围方法抛出的异常被外围方法感知到)

    • A方法抛出异常,A回滚,B、C是A的子事务,B、C回滚

    • C方法抛出异常,C回滚,A感知到异常并抛出,A回滚,B是A的子事务,B回滚

    • C方法抛出异常并被Acatch,C回滚,A未感知异常,A不回滚,B不回滚

注意:如果C方法产生的异常被C自身catch,则C方法即使加了事务,也不会回滚!这是事务失效的一个场景。

  • support支持当前事务,如果当前没事务,则无事务运行

  • mandatory使用当前事务,如果当前没事务,则抛出异常

  • not_support不支持事务,如果当前有事务,则不使用

  • never不支持事务,如果当前有事务,则抛出异常

事务传播行为有什么用?

主要作用就是:控制事务边界

PROPAGATION NESTED来举例。如果外层事务失败,则会回滚内层事务,内层事务失败不影响外层事务。

可以发现,外层事务失败会影响到内层事务,即外层到内层之间是没有边界的,但内层失败则不影响外层,说明内层往外层之间事务是有边界的,使得影响无法传播出去。

事务传播行为可以帮助处理错误情况,灵活的选择回滚整个事务或仅回滚当前方法的事务

Spring 事务在什么情况下会失效?

一般而言失效的情况都是用了声明式事务即 @Transactional注解

  1. 由于Spring的事务是基于AOP的方式结合动态代理来实现的。因此事务方法一定要是public的,这样才能便于被Spring做事务的代理和增强。

  2. 若没有正确地设置@Transactional注解中的rollbackFor属性,那么只有当抛出RuntimeExceptionError时,事务才会回滚。

  3. 如果事务代码抛错,但是被捕获了,但仅仅记录了日志,这样事务无法正常获取到错误,因此不会回滚。

  4. 非事务方法调用事务方法,是不会走代理的,因为事务是基于动态代理实现的

  5. 事务传播行为不对

  6. 没有被Spring管理

http://www.dtcms.com/wzjs/185836.html

相关文章:

  • dw旅游网站怎么做网站提交
  • 哈尔滨微网站建设sem推广外包
  • 凡科互联网国内好的seo网站
  • 网站推广什么意思seo外链
  • 上海公共招聘网官方网站国家税务总局网
  • 淘宝网站怎么做的好坏宁波seo网站排名
  • 廊坊建网站泸州网站seo
  • 网页设计找什么工作seo优化方案报价
  • 大新网站制作全网引擎搜索
  • 公司画册设计网站搜狐三季度营收多少
  • 网站模板红黑全网搜索引擎
  • 网站开发需不需要考研seo优化工作怎么样
  • 怎么用手机做钓鱼软件或者网站安徽网站推广
  • 做盗版电影网站赚钱吗产品推广活动策划方案
  • 制作网站得多少钱百度广告优化
  • wordpress清理网站优化推广软件
  • 网站分类查询东莞关键词自动排名
  • 网站解析后显示建设中腾讯企业qq
  • 建设网站详细流程找文网客服联系方式
  • 深圳网站建设 东莞网站建设百度竞价托管外包
  • 做影视网站怎么挣钱seo技术培训广东
  • 为了选择合适的网络设计方案双滦区seo整站排名
  • 湛江市网站建设网络营销案例2022
  • 搭建网站多少时间青岛新闻最新今日头条
  • php做网站怎么样seo 优化顾问
  • wordpress如何自己写页面seo关键词使用
  • 公司网页设计培训课程网络优化的内容包括哪些
  • 怎么查看网站哪个公司做的企业网站的功能
  • 信誉好的营销网站建设什么软件可以发布推广信息
  • wordpress取回密码收不到邮件百度seo收费