springboot2.x 源码笔记-SpringApplication对象的构造

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...)
springboot2.x 源码笔记-SpringApplication对象的构造_第1张图片
1springApplication构造.jpg
  • 1、应用类型判断
    springboot2.x 源码笔记-SpringApplication对象的构造_第2张图片
    微信图片_20190610165536.png
  • 2、spring.factories加载配置并实例化

    setInitializers与setListeners流程基本上差不多,主要都是通过org.springframework.boot.SpringApplication#getSpringFactoriesInstances(java.lang.Class)
    springboot2.x 源码笔记-SpringApplication对象的构造_第3张图片
    1springApplication构造2.jpg

你可能感兴趣的:(springboot2.x 源码笔记-SpringApplication对象的构造)