Spring Boot使用CLI arg

时间:2019-05-17 22:12:25

标签: java spring spring-boot

我有application.properties变量用于设置默认值:

openvasmd.socket=/usr/local/var/run/openvasmd.sock

我希望能够在应用程序运行时更改它,

java -jar -Dopenvasmd.socket=/var/run/openvasmd.sock application.jar

但是,当我想通过以下方式使用它的值时:

@Value("${openvasmd.socket}")
private String socket;
public String test()  {
        return "gvm-cli --socketpath "+socket;
}

结果是:

  

gvm-cli null

有人能给我一个提示我在哪里做错吗?

1 个答案:

答案 0 :(得分:1)

来自https://www.baeldung.com/properties-with-spring

  

命令行参数的属性

     

与使用文件相反,可以直接在命令行上传递属性:

java -jar app.jar --property="value"
  

您还可以通过系统属性来执行此操作,该系统属性在-jar命令之前而不是在其后提供

java -Dproperty.name="value" -jar app.jar