springboot无法加载yml配置文件的解决方案
作者:z6165039
在Spring Boot项目中,尝试加载yml配置文件时遇到问题,通过一系列排查步骤发现配置文件未被打包到jar文件中,导致无法加载,添加`spring-boot-maven-plugin`依赖后,配置文件被打包,问题解决
springboot无法加载yml配置文件
报错信息:
spring boot Could not resolve placeholder xxx
1.检查配置文件
发现配置信息是存在的,在检查环境变量,发现配置文件匹配的确也没错
2.检查yml配置文件的编码格式
3.检查pom的resource标签
4.检查build-path
5.看读取源码有没有什么发现?
以上都检查完了,问题没有解决;
从根源上出发吧,spring是如何加载yml的;
- spring通过listen启东时广播一个SpringApplicationEvent事件;
- ConfigFileApplicationListener是SpringApplicationEvent的实现;
先查找.yml,.properties结尾的默认文件名称(application)进行读取配置,
在对.yml,.properties进行application-xxx的进行读取配置;
PS:调试中发现读取的文件都是空...(也的确符合我问题现象)
6.检查打包后的文件
maven打包后进行文件jar打包查看,发现的确配置文件都没有打入到jar中。
查看maven依赖。。。缺少自动注入依赖。。
添加如下依赖,
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-autoconfigure</artifactId> </dependency>
在启动。。已经能找到配置了!
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。