spring.factories中配置ApplicationContextInitializer实现类却不起作用

embedded/2024/9/22 17:18:14/

自定义了一个ApplicationContextInitializer的实现类如下

java">public class MyApplicationContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {@Overridepublic void initialize(ConfigurableApplicationContext applicationContext) {System.out.println("将myMap注入到propertySources中");// 获取环境对象ConfigurableEnvironment environment = applicationContext.getEnvironment();// 获取属性来源对象MutablePropertySources propertySources = environment.getPropertySources();//添加新的属性元Map<String,Object> myMap = new HashMap<>();myMap.put("applicationName","big-event");propertySources.addLast(new MapPropertySource("myMap",myMap));}
}

并且在resources/META-INF/spring.factories中对该实现类进行配置

org.springframework.context.ApplicationContextInitializer=com.spring.study.initializer.MyApplicationContextInitializer

最终发现在springboot启动时,该实现类没有被调用,检查了很久,spring.factories配置没问题,路径也没问题,猜测可能时springboot版本问题,切换了版本还是不行,找到一篇博客里面提到了该问题的原因,最终发现在pom文件中<packaging>pom</packaging>导致spring.factories失效
使用pom打包时,不会生成jar包,自然在引入时就没有自动注入的过程,因此删掉它,重新编译可以解决问题,这里做个记录。


http://www.ppmy.cn/embedded/8809.html

相关文章

解读神秘的华为昇腾910

硬件系列的第5篇了 上一篇Microsoft Maia (qq.com) 上上篇Google的TPU (qq.com) 上上上篇怎么看待Groq (qq.com) 上上上上篇

Java面试八股之简述Servlet体系结构

简述Servlet体系结构 Servlet是Java Web开发中的核心组件&#xff0c;用于接收和响应HTTP请求&#xff0c;生成动态内容。它具有平台无关性、协议无关性和动态内容生成能力&#xff0c;遵循明确的生命周期。尽管现代Web开发中更多使用高级框架&#xff0c;但Servlet作为基础&a…

用Python设计一个计算器

Python代码 import tkinter as tk# 定义按钮点击事件处理函数,用于将按钮对应的数字或运算符添加到当前表达式中 def button_click(number):current = entry.get() # 获取当前文本框中的内容entry.delete(0, tk.END) # 清空文本框

react 父组件调用子组件的属性或方法

前言 在vue3中&#xff0c; 子组件会使用 defineExpose 暴露出父组件需要访问的 变量 或 方法父组件通过 ref 函数定义子组件的 refName&#xff0c;并通过 refName.value.xxx 继续访问 react 中呢&#xff1f; 可使用 useImperativeHandle、forwardRef、useRef 第一步&am…

Redis从入门到精通(二十)Redis最佳实践(一)优雅的Key结构、拒绝BigKey

文章目录 第7章 Redis最佳实践7.1 Redis键值设计7.1.1 优雅的Key结构7.1.2 拒绝BigKey7.1.2.1 何为BigKey7.1.2.2 BigKey的危害7.1.2.3 如何发现BigKey7.1.2.4 如何删除BigKey 7.1.3 恰当的数据类型7.1.3.1 存储Java对象7.1.3.2 存储hash数据 7.1.4 小结 第7章 Redis最佳实践 …

gcc/g++编译器

之前学习的vim为linux中编写程序的编写器&#xff0c;但是程序想要编译执行就还需要c语言的编译器gcc 程序翻译的过程 首先我们来了解一下程序编译语言的诞生历程 首先计算机只知道二进制&#xff0c;所以人们开始是用二进制编码&#xff0c;然后又用二进制编码写了一个汇编语…

opencv 打开中文路径图报错

img cv.imread(中文图, 1) [ WARN:06.414] global D:\a\opencv-python\opencv-python\opencv\modules\imgcodecs\src\loadsave.cpp (239) cv::findDecoder imread_(‘D:/download/中文.png’): can’t open/read file: check file path/integrity 转换编码无法解决 file_pa…

学习springcloud中Nacos笔记

一、springcloud版本对应 版本信息可以参考&#xff1a;版本说明 alibaba/spring-cloud-alibaba Wiki GitHub 这里说2022.x 分支对应springboot的版本信息&#xff1a; Spring Cloud Alibaba VersionSpring Cloud VersionSpring Boot Version 2022.0.0.0* Spring Cloud 202…