spring-boot ApplicationContextInitializer實現(xiàn)與使用

ApplicationContextInitializer是在ConfigurableApplicationContext刷新之前初始化Spring ConfigurableApplicationContext的回調接口。當執(zhí)行:ConfigurableApplicationContext.refresh()或SpringApplication.run()時生效。

實現(xiàn)方式

1)編寫MyApplicationContextInitializer,實現(xiàn)ApplicationContextInitializer接口。

public class MyApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
    @Override
    public void initialize(ConfigurableApplicationContext configurableApplicationContext) {
        System.out.println("=======“);
    }
}

啟動BlogApplication

@SpringBootApplication
public class BlogApplication {
    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(BlogApplication.class);
        //關鍵一步:將一個或多個initializer加入至spring容器中
        springApplication.addInitializers(new MyApplicationContextInitializer());
        springApplication.run(args).close();
    }
}
console result

2)在application.properties中以context.initializer.classes為key配置一個或多個自定義Initializer

application.properties

BlogApplication中注釋掉springApplication.addInitializers();

@SpringBootApplication
public class BlogApplication {
    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(BlogApplication.class);
        //springApplication.addInitializers(new MyApplicationContextInitializer());
        springApplication.run(args).close();
    }
}
console result

3)在META-INF/spring.factories中以org.springframework.context.ApplicationContextInitializer為key配置一個或多個initialier

spring.factories

執(zhí)行結果和上圖一樣。

至此,springboot中的ApplicationContextInitializer實現(xiàn)與使用就結束啦,喜歡的讀者可以持續(xù)關注我的springboot系列博客~

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容