【问题标题】:Spring @Value escape colon(:) in default value默认值中的 Spring @Value 转义冒号(:)
【发布时间】:2015-10-21 01:47:59
【问题描述】:

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

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

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

【问题讨论】:

    标签: spring spring-annotations spring-properties


    【解决方案1】:

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

    对于 spring 4.2 及更高版本,

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

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

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

    【讨论】:

    • 对于我在 Spring 4.2 上的结果是:'http://myurl.com'(单引号部分的值)。只需删除单引号即可修复它。如果我猜的话,它会在第一个冒号上拆分,第一部分是变量;余数就是值。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      @Value("${parameterName:}#{T(java.util.Arrays).asList(\"abc:1\",\"def:2\")}")
      
      private List<String> parameters;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-12
        • 2023-02-17
        • 1970-01-01
        • 2020-10-06
        • 1970-01-01
        • 2013-01-30
        相关资源
        最近更新 更多