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

【Spring】AOP的核心原理配方


引言 

>Aop是Spring的另一核心功能,通过动态代理实现功能扩展

文章目录

引言 

一、IOC

1.1 组件扫描

1.2 @Import

二、AOP

2.1 基本使用

2.2 接口使用

2.3 源码追踪

三、Transation

3.1 基本配置

3.2 源码追踪


一、IOC

1.1 组件扫描

在开发中,会在配置类中添加@ComponentScan注解去获取指定包下面的bean,下面是使用:

开始源码追踪:

找出所有的BeanDefinitionRegistryPostcessor并优先执行

ClassPathBeanDefinitionScanner的doScan方法之前看多了,作用就是扫描basePackages包下面带有特定@Component注解的类。你会发现它在注入BeanDefinition时指定的beanName如果注解包含name使用改name,否则默认类名的首字母小写,如果前两个字母都大写那么beanName就是类名。

接下来我们回到ConfigurationClassParser类的deProcessConfigurarionClass方法

看完retrieve方法后再回到ConfigurationClassPostProcessor中

通过源码,可以发现@Bean注入的beanName默认就是方法名

1.2 @Import

@Import可以导入下面三种类:

1.普通的配置类;

2.实现ImportSelector接口的类

3.实现ImportBeanDefinitionRegistrar接口的类

二、AOP

2.1 基本使用

或许你会发现,最总通知方法的执行时机在原始方法执行后执行,先于环绕后置方法。

2.2 接口使用

可以通过实现Advice接口实现通知

2.3 源码追踪

先通过xml的自定义命名空间去定位到处理器

可以看到向定义池添加了一个AspectJAwareAdvisorAutoProxyCreator类

可以看见该定义类实现了Bean后处理器

可以看到aop底层通过jdk和cglib这两种方式去创建代理对象

当我们在执行方法debug时,通过f7进入执行方法,会发现进入的时代理对象里面。

三、Transation

3.1 基本配置

3.2 源码追踪

事务的源码需要从refresh刷新容器方法进入

finish的调用链需要一步步进入到真正执行Bean诞生的方法中

这里主要看after方法

定位到AnnotationAwareAspectJAutoProxyCreator类

http://www.dtcms.com/a/453288.html

相关文章:

  • 惠州建站平台建筑人才网招聘信息
  • 《Cargo 参考手册》第一章:清单
  • MVCC 多版本并发控制
  • 【AI智能体】Coze 打造AI数字人视频生成智能体实战详解:多模态情感计算与云边协同架构
  • 重庆网站建设培训机构学费重庆市官方网站
  • 关系建设的网站上海网站seo招聘
  • Vue router-view和router-link分开写在不同的组件中实现导航栏切换界面
  • Wan2.2-Animate V2版 - 一键替换视频角色,实现角色动作及表情同步迁移替换 支持50系显卡 ComfyUI工作流 一键整合包下载
  • Coordinate Attention for Efficient Mobile Network Design 学习笔记
  • 初识MYSQL —— 数据类型
  • 大型网站建设行情南通专业网站设计制作
  • 【AI智能体】Coze 打造AI数字人视频生成智能体实战详解:从0到1构建可交互虚拟主播
  • LabVIEW使用3D场景光照
  • 河北建设厅网站修改密码在哪wordpress 前台 很慢
  • 数字设计 综合工具 yosys 源码安装与应用简介
  • HikariCP 连接池完全指南
  • 绵竹网站建设大连装修公司
  • C++空值初始化利器:empty.h使用指南
  • 电子版康奈尔笔记写作方案对比
  • (3)SwiftUI 的状态之上:数据流与架构(MVVM in SwiftUI)
  • 郴州网站seo个人兴趣网站设计
  • wordpress企业站源码做qq群头像网站
  • Vue和React怎么选?全面比对
  • C++之再谈类与对象
  • 巫山做网站那家好企业网站的建立
  • 深度学习基础:从原理到实践——第一章感知机(中)
  • 企业网站策划怎么样揭阳模板网站建站
  • 计算机网络第四章(8)——网络层《ICMB网际控制协议》
  • 网络教育网站如何做营销推广做ppt必备网站
  • 移植到Linux,Avalonia初次尝试意外美好