> 文章列表 > SpringBoot初始化器解析

SpringBoot初始化器解析

SpringBoot初始化器解析

1.容器初始化,会读取所有jar包下的META-INF/spring.factories路径的ApplicationContextInitializer然后初始化为对象

org.springframework.boot.SpringApplication#SpringApplication(org.springframework.core.io.ResourceLoader, java.lang.Class<?>...)

 

 org.springframework.boot.SpringApplication#applyInitializers

刷新容器的时候进行回调

2.第二种:手动添加监听器

 添加好会在如下执行:

org.springframework.boot.SpringApplication#prepareContext

3.第三种: 在application.properties里面添加如下属性,注意这里有个DelegatingApplicationContextInitializer的初始化器回去寻找配置文件下的

context.initializer.classes属性对应的class,然后实例化,然后进行回调

 

 执行流程如下:

org.springframework.boot.SpringApplication#prepareContext

org.springframework.boot.SpringApplication#applyInitializers

org.springframework.boot.context.config.DelegatingApplicationContextInitializer#initialize

org.springframework.boot.context.config.DelegatingApplicationContextInitializer#getInitializerClasses