如何将空字符串作为命令行属性传递给Spring?

时间:2018-03-08 00:40:41

标签: spring intellij-idea properties command-line-arguments

仅供参考:我正在使用Intellij的“运行/调试配置”工具。

我想通过命令行将空字符串作为属性传递给我的应用程序:

--spring.ldap.username=

我试过了:

--spring.ldap.username= # results in parse error
--spring.ldap.username=''
--spring.ldap.username="" # results in parse error
--spring.ldap.username=\"\"

实际解析成功的尝试产生了不正确的值,正如我尝试打印'空'字符串时所示:

System.out.println(environment.getProperty("spring.ldap.username"));

// returns:
// ''
// ""

将相同的属性设置为application.properties文件中的空字符串可以很好地工作:

spring.ldap.username=

同样的印刷声明:

// returns:
//
// ^^ totally empty string

我缺少一个技巧吗?

2 个答案:

答案 0 :(得分:1)

试试这个:--spring.ldap.username(如果你离开=,它将解析为null)

答案 1 :(得分:1)

事实证明,这可以通过使用常规JVM参数来实现。

代替

--my.property=

使用

-Dmy.property=

我猜本地JVM参数能够接受空字符串。

在IntelliJ中,您可以将它们添加到“运行/调试配置”窗口的相应字段中,如下所示:

enter image description here

This answer另一个问题也提供了有关将JVM参数传递给Spring应用程序的更多信息。