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

如何建设网站简答题什么网站利于优化

如何建设网站简答题,什么网站利于优化,俄语在线网站制作,英文网站建设需要注意的五点问题首先事务是基于aop的,如果不了解aop的,建议先去看下我关于aop的文章: Spring之aop源码解析  先说结论,带着结论看源码。首先,在bean的生命周期中, 执行实例化前置增强,会加载所有切面并放入缓存&#xff0…

 首先事务是基于aop的,如果不了解aop的,建议先去看下我关于aop的文章: Spring之aop源码解析
 先说结论,带着结论看源码。首先,在bean的生命周期中,
执行实例化前置增强,会加载所有切面并放入缓存,其中就包括我们事务增强的切面,在bean的初始化后置增强会遍历bean的所有方法是否有@Transactional,如果有则生成代理对象。当调用增强方法时,会先开启事务,然后在执行原方法,最后在提交事务或回滚。

事务使用

在这里插入图片描述

 在SpringBoot中是默认开启了事务的,而在spring跟spring mvc中,开启事务需要手动的加上@EnableTransactionManagement注解。这是因为SpringBoot自动装配上TransactionAutoConfiguration类,这个类内部就有@EnableTransactionManagement注解。如果不了解自动装配,可以看下我这篇文章SpringBoot自动装配原理之深入源码解析

spring会解析@Import注解
而TransactionManagementConfigurationSelector实现了ImportSelector接口,spring会调用其selectImports方法
在这里插入图片描述

返回AutoProxyRegistrar,ProxyTransactionManagementConfiguration这两个类继续解析
在这里插入图片描述
AutoProxyRegistrar实现了ImportBeanDefinitionRegistrar接口,则会调用registerBeanDefinitions方法。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
向容器中注入InfrastructureAdvisorAutoProxyCreator类,前提是没有开启aop,因为aop的AnnotationAwareAspectJAutoProxyCreator功能更加强大。(向ioc注入一个BeanpostProcessor,顾名思义这个类用来进行自动代理)

ProxyTransactionManagementConfiguration是一个配置Bean,向容器内注入了TransactionInterceptor,TransactionAttributeSource,BeanFactoryTransactionAttributeSourceAdvisor这三个Bean,相当于advice,pointcut,advisor。

在spring的生命周期中,bean的实例化前置增强环节,会从ioc中加载所有切面,就会找到BeanFactoryTransactionAttributeSourceAdvisor,并放入缓存。我这里直接来到AbstractAutoProxyCreator的postProcessBeforeInstantiation方法,它是AbstractAutoProxyCreator是InfrastructureAdvisorAutoProxyCreator跟AnnotationAwareAspectJAutoProxyCreator的父类,不管有没有开启aop,都会调用这个方法。

我们的BeanFactoryTransactionAttributeSourceAdvisor是一个Advisor,所以被加入了adviseBeans缓存中。
在这里插入图片描述

我们直接来到Student这个Bean生命周期中的初始化后置增强

我这里遍历到AnnotationAwareAspectJAutoProxyCreator(因为我开启了aop,没有使用aop则是InfrastructureAdvisorAutoProxyCreator)

在这里插入图片描述

判断是否需要代理
在这里插入图片描述

匹配自己的切面
在这里插入图片描述
在这里插入图片描述

在方法1中,拿到之前缓存的BeanFactoryTransactionAttributeSourceAdvisor
在方法2中,遍历studentService所有方法是否匹配BeanFactoryTransactionAttributeSourceAdvisor,匹配规则是有@Transactional注解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

找到@Transactional注解并封装成TransactionAttribute
在这里插入图片描述

上面就是匹配切面的过程
匹配成功生成代理对象

当调用事务方法时,执行切面逻辑

来到TransactionInterceptor的invoke方法

在这里插入图片描述

在这里插入图片描述

createTransactionIfNecessary

在这里插入图片描述

获取事务,此时事务为空
在这里插入图片描述

开启新的事务
在这里插入图片描述

创建新的事务并开启

在这里插入图片描述
在这里插入图片描述

将连接的自动提交设置为false
在这里插入图片描述

将连接放到threadLocal中
在这里插入图片描述
在这里插入图片描述

completeTransactionAfterThrowing

在这里插入图片描述

判断异常类型是否@Transactional指定类型,若没指定,使用默认类型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

调用连接池或jdbc的回滚方法
在这里插入图片描述

commitTransactionAfterReturning

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

调用jdbc或连接池的commit方法
在这里插入图片描述

提交后,释放连接,并将threadlocal的连接移除
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

http://www.yayakq.cn/news/152692/

相关文章:

  • 怎样做网站镜像广安市网站建设
  • 网站登录失败怎么回事网站建设费属于宣传费
  • 南阳企业网站推广discuz好还是wordpress
  • 做公益筹集项目的网站平面设计的大专学校
  • wordpress的网站后台网站每天做100个外链
  • 广州企业网站设计制作wordpress recaptcha
  • 北京百度糯米团购有做网站的电话吗程序员软件开发
  • 重庆门户网站网站建设人员工作职责
  • 济南哪里有网站建设公司销售平台建设方案
  • 厦门学网站设计易企秀怎么做网站
  • 东莞营销型网站建设费用秀山县公共资源交易中心
  • 盐城网站建设推广温州网站设计图片大全
  • 智能科技网站模板下载地址福建省建设厅官方网站
  • 做注册会员和购物的网站需要什么免费微信h5页面制作
  • 花垣做网站郑州网站建设兄长好
  • 网站建设内链网站设计创意方案
  • 专门代做毕设的网站wordpress 局域网 显示不全
  • 微信端网站开发流程图电子商务公司注册资金
  • 网站服务器数据迁移北京百度推广优化
  • 深圳哪家建设网站公司好室内设计公司取名字大全集
  • 石家庄 网站建设 15369356722谁有马和人做的网站
  • 只做动漫的网站免费手机网站制作
  • 网站宝二级域名怎么设置wordpress缩进去的边栏
  • 潍坊网站建设小程序网站建设平台协议书
  • 网站源码 后台seo点击工具
  • 石龙镇做网站广告推广一个月多少钱
  • .net 网站管理系统wordpress文章微信分享
  • 建设信用卡在线海淘网站返现设计类专业哪个专科学校好
  • 手机网站建设哪家专业品牌网站建设公司哪家好
  • 做网站需要什么书网页设计项目描述怎么写