Spring @Value以默认值转义冒号(:)

时间:2015-07-29 21:17:47

标签: spring spring-annotations spring-properties

我有以下使用@Value注释的属性。我有一个使用默认分隔符':“

定义的默认值
@Value("${prop.url:http://myurl.com}")

有没有办法逃避http://myurl.com中的':',或者我必须在配置中定义不同的分隔符值。

3 个答案:

答案 0 :(得分:50)

<强>更新 对于4.2及更高版本的弹簧,不需要单引号。 Spring会将第一个冒号视为特殊冒号,并将所有其余冒号用作单个字符串值。

对于春季4.2及更高版本,

@Value("${prop.url:http://myurl.com}")

对于以前的版本,我相信单引号可以解决问题:

@Value("${prop.url:'http://myurl.com'}")

答案 1 :(得分:0)

在Spring 3.2版上,默认值不带引号。

答案 2 :(得分:0)

如果您需要传递包含带有默认值的冒号的字符串列表,请执行以下操作:

@Value("${parameterName:}#{T(java.util.Arrays).asList(\"abc:1\",\"def:2\")}")

private List<String> parameters;