简介

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接口实现/

最新文章

  1. Dojo Data Store——统一数据访问接口
  2. Leetcode-203 Remove Linked List Elements
  3. DirectX 总结和DirectX 9.0 学习笔记
  4. MoveTo和MoveBy
  5. Asp.Net MVC Views页面不包含“GetEnumerator”的公共定义
  6. C++数据类型总结
  7. [转]NHibernate之旅(8):巧用组件之依赖对象
  8. Ubuntu12.04 下安装Chrome浏览器
  9. Unity uGUI 登录及注册功能
  10. Java基础-数组(06)
  11. ng-show,ng-if区别
  12. 生物结构变异分析软件meerkat 0.189使用笔记(一)
  13. RESTful小拓展
  14. 简述ADO中如何使用参数化的命令对象以及增删改查,存储过程的操作
  15. linux rpm 安装后 mysql 默认安装目录等信息
  16. make_heap()等函数的用法
  17. Scapy 网段中ping扫描
  18. 第一个spring冲刺团队贡献分(80分满分)
  19. 3XX重定向
  20. Kali-linux物理访问攻击

热门文章

  1. jquery 克隆div 复制div 克隆元素 复制元素
  2. javascript控制rem字体大小
  3. 蚂蚁金服招聘-JAVA资深开发工程师/专家-蚂蚁金服保险
  4. Unicode 7.0.1中文支持非常好
  5. 用Delphi开发视频聊天软件
  6. QT+OpenGL读取显示图片,OpenGL在QT里的刷新问题(好几篇)
  7. python文件及路径管理函数
  8. 实现h5公众号分享功能(vue项目也适用)
  9. HBase 学习之路(三)—— HBase基本环境搭建
  10. app兼容测试选择哪些机型才够全面呢?