如果没有在其他地方设置,我使用Spring启动(1.5.6.RELEASE)来提供默认属性。然而,取代预期的结果,我得到一个剩余的花括号"}"在结果中。
我创建了一个github测试用例,可以重现它。 参见:
https://github.com/garethrandall/spring-boot-property-failure
在rabbitmq-context.xml中,此行具有addresses属性的默认值:
<rabbit:connection-factory id="rabbitmqConnectionFactory" addresses="${rabbit.host:localhost}:5672"/>
预期结果: 地址属性最终为:
"localhost:5672"
实际结果: 地址最终如下:
"localhost}:5672"
然后在Spring中导致解析错误。
异常消息是:
Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are:
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'addresses' threw exception; nested exception is java.lang.NumberFormatException: For input string: "localhost}:5672"
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:121)
at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:75)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1564)
... 37 more
有没有人见过这个?有一个Spring Boot 2.0.0,但它还不是一个稳定的版本,所以我很想在1.5.6.RELEASE上解决这个问题。
[这与其他问题不同,因为该问题的答案无效(环绕默认为单引号)。]