spring-boot ApplicationContextInitializer實(shí)現(xiàn)與使用
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
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章



