内置后置处理器要理解的问题



1.beanfactorypostProcessor调用过程
2.配置类解析过程
3.配置类@Configuration与component的区别
4.重复beanName覆盖原则
5.@ComponentScan的解析原理
6.beanDefinition的详解



首先解答一下上面的问题
  1. 针对问题3 配置类@Configuration与component的区别
    加了@Configuration的类,是输入full类,不加输入lite,full类会使用cglib进行动态代理,那么内存中这个bean只会有一个,普通的lite每次创建都会重新创建一次。具体可以看 这个实验内置后置处理器要理解的问题_ide

内置后置处理器要理解的问题_动态代理_02

看下一个问题 重复beanName覆盖原则:重名覆盖,这个主要是俩个地方声明bean,一个地方@Component,一个地方通过@Bean
  1. 内置后置处理器要理解的问题_ide_03

内置后置处理器要理解的问题_.net_04

下面是看代码的主流程

内置后置处理器要理解的问题_.net_05

内置后置处理器要理解的问题_.net_06

内置后置处理器要理解的问题_.net_07

内置后置处理器要理解的问题_动态代理_08

内置后置处理器要理解的问题_动态代理_09

内置后置处理器要理解的问题_ide_10

内置后置处理器要理解的问题_ide_11

回到refresh看下一个方法

内置后置处理器要理解的问题_ide_12

内置后置处理器要理解的问题_动态代理_13

内置后置处理器要理解的问题_ide_14

内置后置处理器要理解的问题_ide_15

一个接口,没看到有啥特殊的实现

内置后置处理器要理解的问题_动态代理_16

内置后置处理器要理解的问题_动态代理_17

内置后置处理器要理解的问题_.net_18

内置后置处理器要理解的问题_动态代理_19

关注一下ConfigurableListableBeanFactory的继承实现关系

内置后置处理器要理解的问题_动态代理_20

这个图可以用idea 看,操作方式如下

内置后置处理器要理解的问题_动态代理_21

继续看PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors

内置后置处理器要理解的问题_ide_22

内置后置处理器要理解的问题_动态代理_23

内置后置处理器要理解的问题_动态代理_24

内置后置处理器要理解的问题_动态代理_25

内置后置处理器要理解的问题_ide_26

内置后置处理器要理解的问题_ide_27

内置后置处理器要理解的问题_ide_28

内置后置处理器要理解的问题_ide_29

内置后置处理器要理解的问题_.net_30

内置后置处理器要理解的问题_动态代理_31

内置后置处理器要理解的问题_.net_32

内置后置处理器要理解的问题_ide_33

内置后置处理器要理解的问题_ide_34

不会,我可以学;落后,我可以追赶;跌倒,我可以站起来!