application.properties外部jar文件如何

application.properties outside jar file how to

spring-boot-reference所述:

On your application classpath (e.g. inside your jar) you can have an application.properties that provides a sensible default property value for name. When running in a new environment, an application.properties can be provided outside of your jar that overrides the name

我在与 jar 文件相同的路径上放置了一个具有覆盖名称的重复 application.properties,但是当 运行 使用以下命令连接应用程序时:

java -jar target/myproject-0.0.1-SNAPSHOT.jar

名称值没有被覆盖,它仍然指的是jar文件中application.properties里面的那个。我也试过:

java -Dspring.config.location=/target/application.properties -jar target/myproject-0.0.1-SNAPSHOT.jar

但是不行,请帮忙

编辑

当我将当前目录更改为 target 和 运行 时,它起作用了。

java -jar myproject-0.0.1-SNAPSHOT.jar

为什么?为什么不能在路径外运行呢?

您将 config 拼写为 conig,如果拼写正确,应该可以。

它不起作用,因为您正试图从另一个文件夹启动 jar:spring 启动查找 files/folder 相对于您当前的文件夹。

您可以:

1) 将 application.properties 复制到相对于您当前文件夹的 ././config/ 中。

2) 或指定 -Dspring.config.location:

$ java -Dspring.config.location=target/application.properties -jar target/myproject-0.0.1-SNAPSHOT.jar