曹耘豪的博客

Spring Boot启动机制

  1. 初始化
  2. 启动
    1. 触发SpringApplicationRunListener.started
    2. 创建并配置Environment
    3. 创建并配置Context
    4. refresh
      1. invokeBeanFactoryPostProcessors函数
      2. registerBeanPostProcessors函数
      3. onRefresh
      4. 添加Listener
      5. finishBeanFactoryInitialization
  3. Web应用的URL Mapping
  4. AOP实现过程
  5. 参考

本文基于spring-boot:1.0.0.RELEASE

初始化

SpringApplication.initialize

启动

触发SpringApplicationRunListener.started

SpringApplicationRunListener只有一个实现类:EventPublishingRunListener

创建并配置Environment

创建,根据应用类型返回对应Environment,大部分情况都是web类型

配置内容

触发SpringApplicationRunListener.environmentPrepared

创建并配置Context

根据应用类型返回对应Context,大部分情况都是web类型

refresh

EmbeddedWebApplicationContext.refresh()

invokeBeanFactoryPostProcessors函数

执行BeanDefinitionRegistryPostProcessor相关实现类

registerBeanPostProcessors函数

BeanFactory添加BeanPostProcessor

onRefresh

创建Tomcat容器

添加Listener

finishBeanFactoryInitialization

初始化所有非懒加载的bean:preInstantiateSingletons

Web应用的URL Mapping

AOP实现过程

参考

   / 
  ,