1

我通过 Spring 批处理项目获得了 Spring Boot。在我的 BatchConfiguration 中,我想获取命令行参数,所以我 @Autowire Environment 对象并尝试获取我的道具,但我得到了空值。

经过一些调试后,我发现我可以通过特殊属性名称“nonOptionArgs”获取所有命令行参数,但在这种情况下,我得到了所有参数的纯字符串。有更好的解决方案吗?

谢谢

4

2 回答 2

1

您在自动布线环境中做的一切都是正确的。确保在命令行中使用“--”传递参数

文档

默认情况下,SpringApplication 会将任何命令行选项参数(以“--”开头,例如--server.port=9000)转换为属性并将其添加到 Spring 环境中。如上所述,命令行属性始终优先于其他属性源。

于 2015-12-03T14:52:59.580 回答
0

你可以像这样运行你的应用程序:

$ java -server -Dmyproperty=blabla -jar myapp.jar

并且可以在代码中访问 myproperty 的值。

于 2017-04-27T05:58:51.077 回答