自定义ApplicationContextInitializer接口实现
程序员文章站
2022-05-23 18:20:24
...
简介
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://my.oschina.net/u/2364451/blog/3075077
推荐阅读
-
Android编程ProgressBar自定义样式之动画模式实现方法
-
Android编程使用自定义shape实现shadow阴影效果的方法
-
Android自定义ScrollView实现放大回弹效果实例代码
-
android 自定义ScrollView实现背景图片伸缩的实现代码及思路
-
Android自定义View设定到FrameLayout布局中实现多组件显示的方法 分享
-
PHP调用微博接口实现微博登录的方法示例
-
详解Laravel5.6 Passport实现Api接口认证
-
python itchat实现调用微信接口的第三方模块方法
-
echarts实现词云自定义形状的示例代码
-
Android 自定义View实现抽屉效果