【问题标题】:Can't pass json format key/value in command line for Spring Boot Console application无法在 Spring Boot 控制台应用程序的命令行中传递 json 格式键/值
【发布时间】:2019-02-26 07:22:53
【问题描述】:

application.yml

username:  
password:  

失败
1.java -Dspring.application.json='{"username":"XXXX","password":"XXXX"}' -jar job-display-0.0.1.jar

2.java -jar job-display-0.0.1.jar --spring.application.json='{"username":"XXXX","password":"XXXX"}'

上述格式无效。为什么?我还应该在项目中添加什么?
Official Docs.

可以在命令中提供 SPRING_APPLICATION_JSON 属性 符合环境变量。例如,您可以使用 UN*X shell 中的以下行:

$ SPRING_APPLICATION_JSON='{"acme":{"name":"test"}}' java -jar myapp.jar 在前面的示例中,您最终会得到 acme.name=test in 春天环境。您还可以将 JSON 提供为 spring.application.json 中的一个 System 属性,如图 下面的例子:

$ java -Dspring.application.json='{"name":"test"}' -jar myapp.jar 你 还可以使用命令行参数提供 JSON,如 下面的例子:

$ java -jar myapp.jar --spring.application.json='{"name":"test"}' 你 还可以将 JSON 作为 JNDI 变量提供,如下所示: java:comp/env/spring.application.json.

成功
1.java -jar job-display-0.0.1.jar --username=XXXX --password=XXXX

2.IntelliJ IDEA Environment Variables:
SPRING_APPLICATION_JSON {"用户名":"XXXX","密码":"XXXX"}

3.java -Dusername=XXXX -Dpassword=XXXX -jar job-display-0.0.1.jar

更新:
检查@Sahit 的正确答案。在命令行上,json 字符串应该在 java 代码中表示为字符串。以双引号开始和结束,并在字符串文字中转义双引号。 The docs 给出的样本格式错误。

【问题讨论】:

    标签: spring-boot


    【解决方案1】:

    使用-Dspring.application.json

    java -Dspring.application.json="{\"username\":\"XXXX\",\"password\":\"XXXX\"}" -jar job-display-0.0.1.jar
    

    使用--spring.application.json

    java -jar job-display-0.0.1.jar --spring.application.json="{\"username\":\"XXXX\",\"password\":\"XXXX\"}"
    

    在 WINDOWS 中使用 SPRING_APPLICATION_JSON

    >set SPRING_APPLICATION_JSON={"username":"XXXX","password":"XXXX"}
    >java -jar job-display-0.0.1.jar
    

    在 LINUX 中使用 SPRING_APPLICATION_JSON

    >export SPRING_APPLICATION_JSON={"username":"XXXX","password":"XXXX"}
    >java -jar job-display-0.0.1.jar
    

    【讨论】:

      【解决方案2】:

      您是否尝试过文档中显示的第一种形式...实际上设置了 env var?文档似乎确实表明您正在做的事情应该有效。

      【讨论】:

      • 设置环境变量?如何在代码中设置环境变量?
      猜你喜欢
      • 2015-09-17
      • 1970-01-01
      • 2015-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-03
      • 2020-12-13
      相关资源
      最近更新 更多