Spring 在配置代码中启动获取命令行参数
Spring boot get command line args in configuration code
我用 Spring 批处理项目启动了 Spring。在我的 BatchConfiguration 中,我想获取命令行参数,所以我 @Autowire Environment 对象并尝试获取我的道具,但我得到的是空值。
经过一些调试后,我发现我可以通过特殊的 属性 名称 "nonOptionArgs" 获取所有命令行参数,但在这种情况下,我得到了所有传递的参数的纯字符串。有没有更好的解决方案?
谢谢
您在自动装配环境中所做的一切都是正确的。确保在命令行中使用“--”
传递参数
By default SpringApplication will convert any command line option
arguments (starting with ‘--’, e.g. --server.port=9000) to a property
and add it to the Spring Environment. As mentioned above, command line
properties always take precedence over other property sources.
您可以 运行 您的应用程序是这样的:
$ java -server -Dmyproperty=blabla -jar myapp.jar
并且可以在代码中访问 myproperty 的值。
我用 Spring 批处理项目启动了 Spring。在我的 BatchConfiguration 中,我想获取命令行参数,所以我 @Autowire Environment 对象并尝试获取我的道具,但我得到的是空值。
经过一些调试后,我发现我可以通过特殊的 属性 名称 "nonOptionArgs" 获取所有命令行参数,但在这种情况下,我得到了所有传递的参数的纯字符串。有没有更好的解决方案?
谢谢
您在自动装配环境中所做的一切都是正确的。确保在命令行中使用“--”
传递参数By default SpringApplication will convert any command line option arguments (starting with ‘--’, e.g. --server.port=9000) to a property and add it to the Spring Environment. As mentioned above, command line properties always take precedence over other property sources.
您可以 运行 您的应用程序是这样的:
$ java -server -Dmyproperty=blabla -jar myapp.jar
并且可以在代码中访问 myproperty 的值。