仅供参考:我正在使用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
我缺少一个技巧吗?
答案 0 :(得分:1)
试试这个:--spring.ldap.username
(如果你离开=
,它将解析为null)
答案 1 :(得分:1)
事实证明,这可以通过使用常规JVM参数来实现。
代替
--my.property=
使用
-Dmy.property=
我猜本地JVM参数能够接受空字符串。
在IntelliJ中,您可以将它们添加到“运行/调试配置”窗口的相应字段中,如下所示:
This answer另一个问题也提供了有关将JVM参数传递给Spring应用程序的更多信息。