相当直接。我有一个配置文件:
# 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)
我在哪里错了?撕掉我的头发!
答案 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告诉我这个问题可能是什么。