java - Spring Boot 使用 CLI arg 覆盖应用程序属性
问题描述
我有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 空
谁能给我一个提示我在哪里做错了?
解决方案
来自https://www.baeldung.com/properties-with-spring
命令行参数的属性
与使用文件相反,属性可以直接在命令行上传递:
java -jar app.jar --property="value"
您也可以通过系统属性执行此操作,这些属性在 -jar 命令之前而不是之后提供:
java -Dproperty.name="value" -jar app.jar
推荐阅读
- javascript - 使用 Jquery 添加多个输入不起作用
- redux - 组合来自商店树不同部分的数据并调度操作?
- javascript - 在 setTimeout 内调用 vuex 存储
- json - Grep command questions - Grep text from program output?
- readme - 如何在 README.md 文件中插入水平线
- embedded - 什么是 MX25R 设备的写 SPI 命令
- python - Pandas 将最新日期文件夹/CSV 文件加载到数据框中
- pine-script - Is it possible to retrieve the current bar's color?
- pine-script - Plotting Arrow when Price Passes Indicator Line
- excel - Error handling when 'getElementById' can't find object/value