SpringBoot扩展接口-SpringApplicationInitializer 初始化器

这个扩展接口的主要目的是允许我们对ConfigurableApplicationContext的实例做额外的初始化操作

调用这个接口之前

1、添加自定义事件监听器(非SpringBoot启动过程中的事件监听器)

2、添加BeanFactory的后置处理器 (一般不在这里添加)

注意:不能增加SpringBoot启动过程中的对应事件的监听器,

比如想要增加对ApplicationPreparedEvent事件的监听器,拿不到listeners监听器类,没办法添加进去

触发时间:

prepareContext()方法中执行

使用例子

比如springBoot内置的initializer初始化器

META-INF/spring.factories文件配置,ApplicationContextInitializer变量指定的自定义初始化器类名

比如下面

RSocketPortInfoApplicationContextInitializer

1、添加了一个 RSocketServerInitializedEvent事件的 监听器到 ApplicationContext中。

2、可以在后面业务代码中调用下面方法进行事件发布。再由监听器处理这个事件。

ApplicationContext.publishEvent(new RSocketServerInitializedEvent(xxxx))

Original: https://www.cnblogs.com/gne-hwz/p/15293879.html
Author: 海绵般汲取
Title: SpringBoot扩展接口-SpringApplicationInitializer 初始化器

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/541142/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Anaconda3+CUDA10.1+CUDNN7.6+TensorFlow2.6安装(Ubuntu16)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java、Docker、Kuberne…

    Java 2023年6月8日
    093
  • Java并发工具类

    在 JDK5 之后的并发包中提供的 CountDownLatch 也可以实现 join 的功能,并且比 join 的功能更多 2.CyclicBarrier CyclicBarri…

    Java 2023年5月29日
    091
  • CAS底层原理与ABA问题

    CAS定义 CAS(Compare And Swap)是一种无锁算法。CAS算法是乐观锁的一种实现。CAS有3个操作数,内存值V,旧的预期值A,要修改的新值B。当预期值A和内存值V…

    Java 2023年6月7日
    082
  • Spring Cloud Hystrix Dashboard熔断器-Turbine集群监控(六)

    绿色计数: 表示成功的请求数 蓝色计数: 表示断路器打开后,直接被短路的请求数 黄色计数: 表示请求超时数 紫色计数: 表示因为线程池满而被拒绝的请求数 红色计数: 表示因为异常而…

    Java 2023年5月30日
    095
  • 高峰应对记录

    一、背景 最近这个点9月中旬了,快到双十一了,公司开始对一些较为重要的系统开始进行压测。在这个过程中,需要保证系统的稳定性,以及高吞吐量。所以记录这次的压测过程,自己遇到的各种问题…

    Java 2023年6月15日
    076
  • K8S 使用deploy部署nginx

    K8S 使用deployment 部署nginx服务 deploy文件如下: [root@k8s-master ~]# cat deploy.yaml apiVersion: ap…

    Java 2023年5月30日
    056
  • JAVA对象的内存解析

    堆(Heap):此内存区域用来存放对象实例 栈(Stack): 存储局部变量,局部变量存储有数据类型(boolean,byte,int,short,int,float,long,d…

    Java 2023年6月15日
    074
  • 观察线程的状态

    public class ThreadState { public static void main(String[] args) { // 定义一个线程 Thread threa…

    Java 2023年6月13日
    0101
  • ElasticSearch(一)

    官网: https://www.elastic.co/cn/elasticsearch/ 是什么? Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引…

    Java 2023年6月8日
    088
  • 程序员工作中的理性与感性活动及所需的技能素养

    程序员工作中的理性与感性活动及所需的技能素养。 真的是被”严酷的工作”拷打出来的人啊! 理性与感性活动 梳理和熟悉业务。需要方法和细心。请教、询问、交谈、文…

    Java 2023年6月9日
    0110
  • 排序算法(3)

    快速排序 快速排序可能是应用最广泛的算法了。快排流行的原因在于实现简单、并且适用于各种不同的输入数据,因此在一般的应用中比其他排序算法都要快很多。快排的优点在于其是原地排序,不向归…

    Java 2023年6月5日
    095
  • 想入门数据结构,却总是拜倒在链表的石榴裙下?

    大家好,我是melo,一名大二上软件工程在读生,经历了一年的摸滚,现在已经在工作室里边准备开发后台项目啦不过这篇文章呢,还是想跟大家聊一聊数据结构与算法,学校也是大二上才开设了数据…

    Java 2023年6月5日
    0101
  • 数据结构与算法之希尔排序

    希尔排序则是通过添加一个步长的概念,每次把当前元素与增加步长后的元素比较,如果交换则交换.然后再次增加步长去比较,这个过程与插入排序一样.希尔排序与插入排序的 区别在于希尔排序通过…

    Java 2023年6月8日
    094
  • SpringBoot整合Validation进行参数校验

    目录依赖在controller中校验接收到的参数Validation常用注解异常处理多级嵌套校验分组校验 spring、lombok提供了一些参数校验的注解,比如@Nullable…

    Java 2023年5月30日
    098
  • pay-spring-boot 开箱即用的Java支付模块,整合支付宝支付、微信支付

    使用本模块,可轻松实现支付宝支付、微信支付对接,从而专注于业务,无需关心第三方逻辑。 模块完全独立,无支付宝、微信SDK依赖。 基于Spring Boot。 依赖Redis。 我能…

    Java 2023年5月29日
    094
  • NO4 系统移植-项目技术资料共享解决方案

    系统移植项目-技术资料共享解决方案 前言 本文只做解决方案分析,不做具体技术点的说明 一:为什么需要技术资料的共享 系统移植项目的移植点可以分:(1)操作系统移植,例如:由wind…

    Java 2023年6月8日
    0110
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球