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

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

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

首先解答一下上面的问题
  1. 针对问题3 配置类@Configuration与component的区别

    加了@Configuration的类,是输入full类,不加输入lite,full类会使用cglib进行动态代理,那么内存中这个bean只会有一个,普通的lite每次创建都会重新创建一次。具体可以看 https://blog.csdn.net/long476964/article/details/80626930,这个实验

    1648694149671

1648694169953

看下一个问题 重复beanName覆盖原则:重名覆盖,这个主要是俩个地方声明bean,一个地方@Component,一个地方通过@Bean
  1. 1648694461639

1648694475801

下面是看代码的主流程

1648624412229

1648624434724

1648624460881

1648624795251

1648624813857

1648624918439

1648625064754

回到refresh看下一个方法

1648625265709

1648625308132

1648625322337

1648625561653

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

1648625654770

1648625686376

1648625701939

1648625808350

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

1648626262956

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

1648626171261

继续看PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors

1648626421389

1648626539107

1648626586018

1648626615376

1648626668961

1648626766164

1648626847456

1648626880608

1648626962426

1648626970314

1648627163105

1648627219494

1648627252262

posted @ 2022-03-31 10:50  小傻孩丶儿  阅读(31)  评论(0编辑  收藏  举报