Spring boot 引用外部配置文件的一个坑 spring.config.location
程序员文章站
2022-03-02 12:15:42
...
我们知道spring boot 支持通过配置JVM参数 -Dspring.config.location 为一个外部文件的位置,以达到将配置文件与应用隔离的目的
1 在使用中发现一个问题,
如 :
- 将spring boot 的配置文件放到一个文件夹 D:/spring-config 下。
- 配置JVM启动参数 -Dspring.config.location= D:/spring-config
然后会发现项目无法启动。
spring 官网也没有找到对这个配置的更详细的说明
2 先说解决方案:
将配置的路径添加斜杠结尾即可,注意结尾的斜杠
-Dspring.config.location= D:/spring-config/
3 接下来看原因
在这个类里面可以看到spring 关于加载配置文件的各种默认规则,如配置文件的位置 名称等等。
org.springframework.boot.context.config.ConfigFileApplicationListener
也定义了配置文件位置这个属性,至于在哪儿使用就不贴代码了。
/**
* The "config location" property name.
*/
public static final String CONFIG_LOCATION_PROPERTY = "spring.config.location";
然后看他的load方法。注意到木有 location.endsWith("/"); 也就是必须以 "/" 结尾的配置才会当做目录去遍历其中的文件
private void load(Profile profile, DocumentFilterFactory filterFactory, DocumentConsumer consumer) {
getSearchLocations().forEach((location) -> {
boolean isFolder = location.endsWith("/");
Set<String> names = isFolder ? getSearchNames() : NO_SEARCH_NAMES;
names.forEach((name) -> load(location, name, profile, filterFactory, consumer));
});
}
上一篇: ASP.NET母版页引用外部css和js文件的写法
下一篇: Oracle 提示经常出现的错误写法
推荐阅读
-
spring boot启动时加载外部配置文件的方法
-
Spring Boot打jar包后配置文件的外部优化配置方法
-
spring boot启动时加载外部配置文件的方法
-
SPRING BOOT 打包部署引用外部spring配置文件
-
Spring boot war包引用外部配置文件
-
SpringBoot引用外部配置文件spring.config.location
-
spring boot 配置文件(yml)的一个坑。(mmp)
-
springboot 如何引用外部配置文件(spring.config.location)
-
Spring Boot外部配置文件的加载顺序
-
Spring Boot打jar包后配置文件的外部优化配置方法