Spring boot在配置代码中获取命令行参数

时间:2015-12-03 14:36:15

标签: spring-boot spring-batch spring-environment

我使用Spring批处理项目进行Spring启动。在我的BatchConfiguration中,我想得到命令行参数,所以我@Autowire Environment对象并尝试获取我的道具,但我得到了null。

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

由于

2 个答案:

答案 0 :(得分:1)

您正在使用自动装配环境正确地完成所有工作。确保在命令行中使用“ - ”

传递参数

来自documentation

  

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

答案 1 :(得分:0)

您可以像这样运行您的应用:

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

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