本人博客原地址:springboot2.x 源码笔记-SpringApplication对象的构造
创作时间: 2019.06.10 20:08:30
springboot的源码(spring)主要分为几个部分
1、构造SpringApplication,完成spring.factories文件中Initializers与Listeners的加载
2、加载配置文件,通过ConfigFileApplicationListener
3、加载BeanDefinitionRegistryPostProcessor与BeanFactoryPostProcessor完成bean的定义包装(非生成实例)
4、生成bean实例以及初始化
本文主要针对第一点,在启动类main方法中执行org.springframework.boot.SpringApplication#run(java.lang.Class<?>, java.lang.String…)后,SpringApplication对象的构造,主要是为了查看如何从spring.factories加载配置并实例化。基于springboot2.1.4
项目地址:https://gitee.com/eshin/springbootdemo.git#autotest
org.springframework.boot.SpringApplication#run(java.lang.Class<?>[], java.lang.String[])-->org.springframework.boot.SpringApplication#SpringApplication(org.springframework.core.io.ResourceLoader, java.lang.Class<?>…)
- 1、应用类型判断
- 2、spring.factories加载配置并实例化
setInitializers与setListeners流程基本上差不多,主要都是通过org.springframework.boot.SpringApplication#getSpringFactoriesInstances(java.lang.Class)