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<?>...)
1springApplication构造.jpg
  • 1、应用类型判断
    微信图片_20190610165536.png
  • 2、spring.factories加载配置并实例化

    setInitializers与setListeners流程基本上差不多,主要都是通过org.springframework.boot.SpringApplication#getSpringFactoriesInstances(java.lang.Class<T>)
    1springApplication构造2.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容