Spring Boot应用无法识别自定义business-config.yml配置文件问题咨询
自定义YML配置文件注册方案
Spring Boot默认仅自动加载application*.yml、bootstrap*.yml(Spring Cloud环境)命名规则的配置文件,自定义命名的business-config.yml需要主动导入才能被识别,两种常用实现方式如下:
- 方式一:Spring Boot 2.4+ 版本最简方案
直接在已被识别的application.yml中添加导入配置即可,加载后配置项会自动合并到Spring环境变量中,可在actuator的env端点查询到:
如果自定义配置文件放在resources下的子目录,对应修改路径即可,例如spring: config: import: classpath:business-config.ymlclasspath:config/business-config.yml。 - 方式二:低版本Spring Boot兼容方案
通过自定义配置类 + Yaml属性加载工厂实现,首先实现Yaml加载工厂类:
再创建配置类引入配置文件:public class YamlPropertySourceFactory implements PropertySourceFactory { @Override public PropertySource<?> createPropertySource(String name, EncodedResource resource) throws IOException { return new YamlPropertySourceLoader().load(resource.getResource().getFilename(), resource.getResource()).get(0); } }@Configuration @PropertySource(value = "classpath:business-config.yml", factory = YamlPropertySourceFactory.class) public class BusinessConfig { }
Spring绿色图标说明
该标识是IDEA内置Spring插件的自动识别标记,只要配置文件被注册为Spring上下文的合法配置源,插件扫描到后就会自动展示该图标,无需手动配置。如果需要让business-config.yml也显示该标识,可手动配置:
- 打开IDEA的
File > Project Structure > Modules - 选中对应的Spring Boot模块,切换到右侧
Spring标签页 - 点击加号,将
business-config.yml加入配置文件列表,保存后即可显示图标
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

