`spring.config.location`被忽略

时间:2017-05-02 18:32:51

标签: java linux spring-boot

相当直接。我有一个配置文件:

# ls -la /etc/my-application
-rwxr-xr-x 1 root root 18 May  3 04:24 /etc/my-application
# cat /etc/my-application
server.port=12345

我按以下方式运行我的应用程序:

java org.springframework.boot.loader.JarLauncher --spring.config.location="file:///etc/my-application"

并且日志记录表明该设置对应用程序可见:

04:28:16.919 [main]警告配置 - [--spring.config.location = file:/// etc / my-application]

但我的设置被忽略了:

Tomcat initialized with port(s): 8080 (http)

以下结果相同:

java org.springframework.boot.loader.JarLauncher --spring.config.location="file://etc/my-application"

所以:

java org.springframework.boot.loader.JarLauncher --spring.config.location="file:/etc/my-application"

这也不起作用,参数也没有出现:

java -Dspring.config.location="file:///etc/my-application" org.springframework.boot.loader.JarLauncher
...
... 04:36:53.979 [main] WARNING CONFIG - []

奇怪的是,如果我直接指定设置,它可以工作:

java org.springframework.boot.loader.JarLauncher --server.port=12345
...
... Tomcat initialized with port(s): 12345 (http)

我在哪里错了?撕掉我的头发!

2 个答案:

答案 0 :(得分:2)

' / etc / my-application'一个目录?如果是,您在所有尝试中都缺少尾部斜杠。你肯定需要那个。

e.g。的/ etc /我的应用/

答案 1 :(得分:1)

胜出的组合结果是:

java org.springframework.boot.loader.JarLauncher --spring.config.location=file:///etc/resources-master-server.properties

这里的关键点是扩展很重要。 Spring似乎通过扩展名来确定设置文件是什么,而不是文件的内容,如果没有扩展名,它似乎不知道如何处理属性文件。

谢谢那些提供帮助和建议的人,Sameer告诉我这个问题可能是什么。