手记

spring-boot ApplicationContextInitializer实现与使用

ApplicationContextInitializer是在ConfigurableApplicationContext刷新之前初始化Spring ConfigurableApplicationContext的回调接口。当执行:ConfigurableApplicationContext.refresh()或SpringApplication.run()时生效。

实现方式

1)编写MyApplicationContextInitializer,实现ApplicationContextInitializer接口。

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

启动BlogApplication

@SpringBootApplicationpublic 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();


@SpringBootApplicationpublic 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


执行结果和上图一样。


至此,springboot中的ApplicationContextInitializer实现与使用就结束啦,喜欢的读者可以持续关注我的springboot系列博客~



作者:八目朱勇铭
链接:https://www.jianshu.com/p/e4a0b900872b


0人推荐
随时随地看视频
慕课网APP