48

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

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

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

4

3 回答 3

73

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

对于 spring 4.2 及更高版本,

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

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

@Value("${prop.url:'http://myurl.com'}")
于 2015-07-29T21:23:56.790 回答
0

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

于 2019-02-18T13:27:45.643 回答
0

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

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

private List<String> parameters;
于 2021-02-11T11:35:48.927 回答