动态代理对象的创建时机(spring 对比 自研框架)

来源:10-8 筛选匹配的横切逻辑实例(上)

慕哥6062902

2020-08-15

翔仔老师,在这节开始的时候,你是这样说的——动态代理对象的创建并不需要,也不会干预bean的实例化、属性赋值和初始化的过程,而初始化结束才意味着bean被创建完成…

而在自研框架里面,我们是 1、加载bean,2、doAop,3、doIOC
也就是doAop是在bean实例化之后、属性赋值前做的,我其实觉得这个顺序很合理啊。但是听了springAOP这块的实现,有点懵。我清楚你讲的都是对的。但是我比较困惑的是,是因为自研框架逻辑简单,所以和spring源码的顺序不一致呢。还是别的什么原因。因为按照你对spring源码的讲解,我的理解变成了,spring本来的顺序是1、加载bean, 2、IOC, 3、Aop
现在有点茫然了

写回答

1回答

翔仔

2020-08-16

慕哥好,要了解springaop的执行契机,就像视频里说的一样,要了解processor的执行时机,咱们自研框架主要是假定所有Bean全部是单例,并且bean里面不需要处理循环依赖这些,毕竟一开始相关的Bean实例已经都创建好,所以可以按照上述顺序执行。但是Spring里面由于bean的创建情况比较复杂,所以相关的织入操作需要贯穿在bean的声明周期里,因此顺序并不固定,同学可以看看我们视频讲解的processor执行aop的地方,就能知道是在哪里了

0
1
慕哥6062902
辛苦老师回答,这样我就能大致理解了
2020-08-16
共1条回复

剑指Java自研框架,决胜Spring源码

快速入门Spring核心源码+从零开发自研框架

1499 学习 · 495 问题

查看课程