资讯专栏INFORMATION COLUMN

自定义ApplicationContextInitializer接口实现

kk_miles / 1761人阅读

摘要:简介是框架提供的接口该接口的主要功能就是在接口刷新之前,允许用户对实例做一定的操作。该接口只有一个方法。实现该接口实现该接口,并在方法中打印容器中初始化了多少个对象。启动程序启动程序,打印日志容器中初始化数量原文链接

简介

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

ApplicationContextInitializer接口源代码

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

public interface ApplicationContextInitializer {
    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/2...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/77906.html

相关文章

  • 定义ApplicationContextInitializer接口实现

    摘要:简介是框架提供的接口该接口的主要功能就是在接口刷新之前,允许用户对实例做一定的操作。该接口只有一个方法。实现该接口实现该接口,并在方法中打印容器中初始化了多少个对象。启动程序启动程序,打印日志容器中初始化数量原文链接 简介 ApplicationContextInitializer是Spring框架提供的接口, 该接口的主要功能就是在接口ConfigurableApplicationC...

    alin 评论0 收藏0
  • ApplicationContextInitializer接口

    摘要:注在类上标注,不是方法上方法是接口的方法,通过继承和实现拥有了该方法打印容器里面有多少个打印人所有个的名字如下的实现类接口是在容器刷新之前执行的一个回调函数。 一、.简述 ApplicationContextInitializer是Spring框架原有的概念, 这个类的主要目的就是在 ConfigurableApplicationContext类型(或者子类型)的...

    blankyao 评论0 收藏0
  • Spring Boot 2.x 启动全过程源码分析(上)入口类剖析

    摘要:设置应用上线文初始化器的作用是什么源码如下。来看下方法源码,其实就是初始化一个应用上下文初始化器实例的集合。设置监听器和设置初始化器调用的方法是一样的,只是传入的类型不一样,设置监听器的接口类型为,对应的文件配置内容请见下方。 Spring Boot 的应用教程我们已经分享过很多了,今天来通过源码来分析下它的启动过程,探究下 Spring Boot 为什么这么简便的奥秘。 本篇基于 S...

    MobService 评论0 收藏0
  • Spring Boot启动过程及回调接口汇总

    摘要:创建及准备创建。目前已知关心这个事件的有要注意的是在这个阶段,里只有,是的加载工作的起点。原因是注入这些回调接口本身没有什么意义。在其构造函数内部间接的给注册了几个与相关注解的处理器。 相关代码在: https://github.com/chanjarster/spring-boot-all-callbacks 注:本文基于spring-boot 1.4.1.RELEASE, spri...

    Taonce 评论0 收藏0
  • spring-framework源码研读

    摘要:额外知识点参考知识点加载策略资源后,容器启动时会调用的方法。从获取对象对象,如果存在则抛异常。这个是重点核心的知识点,参考知识点。看到这里应该知道每一层的作用吧,一层一层往上递进第四步正在研读 1.根据我们常用的web.xml里,我们找到的org.springframework.web.context.ContextLoaderListener。web.xml如下 moo...

    rottengeek 评论0 收藏0

发表评论

0条评论

kk_miles

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<