2.3 spring5源码系列---内置的后置处理器PostProcess加载源码

1. BeanFactoryPostProcessor调用过程源码剖析

2. 配置类的解析过程源码

3. 配置类@Configuration加与不加的区别

4. 重复beanName的覆盖规则

5. @ComponentScan的解析原理

 

 

一. 研究目标: 解析spring如何加载配置类

我们经常会在一个类上打上@Configuration, @Component, @Bean等. 带有这些注解的类, 就是我们所说的配置类. 那么, spring启动的时候,是如何加载这些配置类的呢?

下面就以此为目的, 分析spring源码. 本节的内容是对上一节内容的实战分析, 同时更加详细的解读spring源码

2.3 spring5源码系列---内置的后置处理器PostProcess加载源码

 

 

我们知道, spring启动的时候做了3件事, 就是上面的三件事. 

第一件事: 调用this()自身的无参构造函数. 初始化了BeanDefinitionReader和BeanDefinitionScanner, 同时初始化了很多spring的原始后置处理器, 这些处理器是用来加载bean的 第二件事: 调用register(..) 注册配置类 第三件事: refresh(..) 这里包含了整个ioc创建bean的全生命周期, 今天重点看invokeBeanFactoryPostProcessors(beanFactory)加载配置类

 

二. 准备工作: 自定义配置类MainConfig

我们先定义好要分析加载的配置类

package com.lxl.; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; /** * 这是一个配置类, * 在配置类里面定义了扫描的包路径com.lxl. * 这是会将这个包下配置了注解的类扫描到ioc容器里面,成为一个成熟的bean */ @Configuration @ComponentScan(basePackages = {"com.lxl."}) public class MainConfig { }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyyxpj.html