很详细的aop通知整理(小白慎点!)
2025-03-06 17:27:05 0 举报
AOP深度解析
作者其他创作
大纲/内容
cglib
在执行之前必须要把构造器中需要的对象提前创建好
实例化
AspectJExpressionPointcut
beanFactory对象
AspectJPointcutAdvisor#4
AspectJAfterAdvice
Advisor#0--#4
AspectInstanceFactory
准备
advisor通知器
MethodLocatingFactoryBean0
AspectJPointcutAdvisor#0
Method
被应用在哪些方法上
我们怎么做
createBean
AspectJAfterThrowingAdvice
无参
字节码文件
准备BeanDefinition
调用有参构造方法创建对象
先编写额外的逻辑类
表达式1
需要自己手动操作
使用方式:xml 注解
doGetBean
getBean
createBeanInstance
在你的意识中,不要把配置文件跟注解独立开,一样的解析过程
SimpleBeanFactoryAwareAspectInstanceFactory2
AspectJPointcutAdvisor#3
怎么筛选这个具体的位置
AspectJAutoProxyCreator
会包含无数个嵌套的环节
IOC
AspectJAroundAdvice有参
jdk
调用无参的构造方法
切点
advisor
aop面向切面编程
具体的某些方法要被执行处理
额外添加的业务逻辑
实例化对象
动态代理
AspectJAroundAdvice
AspectJAfterReturningAdvice
切面
doCreateBean
AspectJPointcutAdvisor#1
1、查看配置文件的解析工作,在处理之后的beanDefinition中包含什么信息 BeanDefinition的解析工作(loadBeanDefinitions(default和custom))2、对aop相关的beanDefinition进行实例化操作 在进行第一个对象创建之前,就必须要把aop需要的相关对象提前准备好,因为无法预估哪些对象需要动态代理3、在哪个步骤中可以提前实例化并且生成对应的对象 BFPP是用来对BeanFactory进行修改操作的,不会影响到后续的实例化过程。 BPP(BeanPostProcessor(before和after))resolveBeforeInstantiation()
method对象
位置来进行额外逻辑的执行
pointcut
总结
AspectJMethodBeforeAdvice
AspectJPointcutAdvisor#2
创建AspectJPointcutAdvisor对象有参
从左向右创建
连接点
对象的创建包含几个过程
aspect
填充属性
1、哪些类需要进行相关的切入:expression,pointcut2、额外的逻辑处理,有几个通知消息或者说有哪些逻辑可以被执行before,after,afterThrowing,afterReturing,around:advisor---》advice3、额外的处理逻辑的类是哪个,也就是哪个切面aspect
set设置属性值
必须要把右边的对象创建成功之后左边的对象才能创建
advice
0 条评论
下一页