自定义ApplicationContextInitializer接口实现

简介

ApplicationContextInitializer是Spring框架提供的接口, 该接口的主要功能就是在接口ConfigurableApplicationContext刷新之前,允许用户对ConfigurableApplicationContext实例做一定的操作。该接口只有一个initialize方法。

ApplicationContextInitializer接口源代码

该接口只定义了一个initialize方法。

public interface ApplicationContextInitializer<C extends ConfigurableApplicationContext> {
	void initialize(C applicationContext);

}

实现该接口

实现该接口,并在initialize方法中打印容器中初始化了多少个Bean对象。

@Order(123) // @Order的value值越小越早执行
public class LearnApplicationContextInitializer implements ApplicationContextInitializer {
   @Override
   public void initialize(ConfigurableApplicationContext applicationContext) {
      // 打印容器里面初始化了多少个Bean
      System.out.println("容器中初始化Bean数量:" + applicationContext.getBeanDefinitionCount());
   }
}

接口配置使用

第一种方法

仿照Spring Boot初始化配置使用该接口实现类的方法,在项目的classpath下创建META-INF/spring.factories文件。并仿照Spring Boot的配置格式进行配置:

# Application Context Initializers
org.springframework.context.ApplicationContextInitializer=\
com.secbro2.learn.initializer.LearnApplicationContextInitializer

第二种方法

通过application.properties或application.yml文件进行配置。格式如下:

context.initializer.classes=com.secbro2.learn.initializer.LearnApplicationContextInitializer

第三种方法

通过SpringApplication提供的addInitializers方法进行追加配置的。

public static void main(String[] args) {
   SpringApplication app = new SpringApplication(SpringLearnApplication.class, Person.class);
   app.addInitializers(new LearnApplicationContextInitializer());
   app.run(args);
}

启动程序

启动Spring Boot程序,打印日志:

容器中初始化Bean数量:6

原文链接:https://www.choupangxia.com/2019/07/17/自定义applicationcontextinitializer接口实现/

posted on   程序新视界  阅读(231)  评论(0编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示