前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >自定义ApplicationContextInitializer接口实现

自定义ApplicationContextInitializer接口实现

作者头像
程序新视界
发布2019-08-01 11:41:22
8500
发布2019-08-01 11:41:22
举报
文章被收录于专栏:丑胖侠丑胖侠

简介

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

ApplicationContextInitializer接口源代码

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

代码语言:javascript
复制
public interface ApplicationContextInitializer<C extends ConfigurableApplicationContext> {
	void initialize(C applicationContext);

}

实现该接口

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

代码语言:javascript
复制
@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的配置格式进行配置:

代码语言:javascript
复制
# Application Context Initializers
org.springframework.context.ApplicationContextInitializer=\
com.secbro2.learn.initializer.LearnApplicationContextInitializer

第二种方法

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

代码语言:javascript
复制
context.initializer.classes=com.secbro2.learn.initializer.LearnApplicationContextInitializer

第三种方法

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

代码语言:javascript
复制
public static void main(String[] args) {
   SpringApplication app = new SpringApplication(SpringLearnApplication.class, Person.class);
   app.addInitializers(new LearnApplicationContextInitializer());
   app.run(args);
}

启动程序

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

代码语言:javascript
复制
容器中初始化Bean数量:6

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年07月17日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • ApplicationContextInitializer接口源代码
  • 实现该接口
  • 接口配置使用
    • 第一种方法
      • 第二种方法
        • 第三种方法
          • 启动程序
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档