自定义ApplicationContextInitializer接口实现

简介: 自定义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
目录
相关文章
|
2月前
|
存储 Java 容器
JAVACollection接口
JAVACollection接口
17 1
|
1月前
接口
使用使用接口的时候,需要注意: 1.接口是没有静态代码块或者构造方法的。 2,一个类只能继承一个,但是一个类可以同时实现多个接口。 格式: public class MyInterfaceImpl implements MyInterfaceA,MyInterfaceB {} 3.如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。 4、如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类。 5如果实现类锁实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进 行覆善重写。 6.一个类如果直接父类当中的方法,和接口当中的
9 0
|
21天前
|
前端开发 API C#
C# 接口
C# 接口
19 1
|
3月前
|
前端开发 Java 数据库
你是这么写接口的么
你是这么写接口的么
10 0
|
6月前
|
Java
【接口的使用】
【接口的使用】
32 0
|
9月前
|
前端开发 Java
写一个接口该注意什么?
写一个接口该注意什么?
41 0
|
12月前
|
程序员
14 接口
14 接口
76 0
|
Java Maven
一文了解ConfigurationConditon 接口
在了解ConfigurationCondition 接口之前,先通过一个示例来了解一下@Conditional 和 Condition。
92 0
|
C# 索引
C#-接口
接口是一种用来定义程序的协议,它描述可属于任何类或结构的一组相关行为。接口可有方法、属性、事件和索引器或这四种成员的任何组合类型,但不能包含字段。接口只包含了成员的声明,在继承的类中进行实现。
87 0