【发布时间】:2015-10-21 01:47:59
【问题描述】:
我有以下用@Value 注释的属性。我有一个使用默认分隔符定义的默认值 ':"
@Value("${prop.url:http://myurl.com}")
有没有办法在http://myurl.com 中转义“:”,或者我必须在我的配置中定义不同的分隔符值。
【问题讨论】:
标签: spring spring-annotations spring-properties
我有以下用@Value 注释的属性。我有一个使用默认分隔符定义的默认值 ':"
@Value("${prop.url:http://myurl.com}")
有没有办法在http://myurl.com 中转义“:”,或者我必须在我的配置中定义不同的分隔符值。
【问题讨论】:
标签: spring spring-annotations spring-properties
更新: 对于 spring 4.2 及更高版本,不需要单引号。 Spring 会将第一个冒号视为特殊冒号,并将其余所有冒号用作单个字符串值。
对于 spring 4.2 及更高版本,
@Value("${prop.url:http://myurl.com}")
对于以前的版本,我相信单引号可以解决问题:
@Value("${prop.url:'http://myurl.com'}")
【讨论】:
'http://myurl.com'(单引号部分的值)。只需删除单引号即可修复它。如果我猜的话,它会在第一个冒号上拆分,第一部分是变量;余数就是值。
在 Spring 3.2 版中,默认值不带引号。
【讨论】:
如果您需要传递包含冒号和默认值的字符串列表,请执行以下操作:
@Value("${parameterName:}#{T(java.util.Arrays).asList(\"abc:1\",\"def:2\")}")
private List<String> parameters;
【讨论】: