今天在看spring cloud官方文档的时候看到ApplicationContextInitializer,官网上对这个类的解释如下
Callback interface for initializing a Spring ConfigurableApplicationContext
prior to being ConfigurableApplicationContext#refresh() refreshed.
翻译过后
spring上下文初始化的回调函数在上下文(ConfigurableApplicationContext)刷新(refresh)之前调用。
下面我们来看一下实现方式,自己自定义一个类来实现ApplicationContextInitializer
public class MyApplicationContextInitializer implements ApplicationContextInitializer{
@Override
public void initialize(ConfigurableApplicationContext var1){
System.out.println("bean init==============================="+var1.getApplicationName());
}
}
然后在启动类main方法中写如下方法
public static void main(String[] args) {
// SpringApplication.run(Application.class, args);
SpringApplication application = new SpringApplication(Application.class);
方法一:添加自定义的 ApplicationContextInitializer 实现类的实例(注册ApplicationContextInitializer)
application.addInitializers(new MyApplicationContextInitializer());
ConfigurableApplicationContext context = application.run(args);
context.close();
}
然后我们来看看启动日志

我们看到这个接口是在上下文启动之前调用的。
也可以不用在启动类中加,直接在配置文件里面加载我们的类
context:
initializer:
classes: com.zfh.config.MyApplicationContextInitializer
本文介绍如何使用Spring的ApplicationContextInitializer接口来实现在上下文刷新前进行初始化操作。通过自定义类并实现该接口,可以在Spring应用启动时执行特定任务。
895

被折叠的 条评论
为什么被折叠?



