带有@value的Spring|参数获取标签名称作为值,而不是来自.yaml文件的标签值



关于spring微服务项目-具有如下布尔参数:

@Value("${a.b.c}")
private boolean flag;

在.yaml文件上具有:

a 
b
c: true

但是在运行应用程序时,获得:由以下原因引起:java.lang.IllegalArgumentException:无效的布尔值[${a.b.c}]网址:org.springframework.beans.propertyeditors.CustomBooleanEditor.setAsText(CustomBooleanEditor.java:154(位于org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:429(

而调试看起来参数是获取标签名称(a.b.c(,而不是标签值(true

知道怎么了吗?应该检查什么?还是固定的?

首先,你的yaml看起来不对:

应该是(带冒号(:

a:
b:
c: true

除此之外,您是否将这些定义放入application.yaml(或yml(中,或者您是否有一些自定义配置?如果你把它放在application.yaml中,@Value本身在Java中定义得很好,所以考虑到在它的一个字段上有这个注释的类本身就是一个springbean,它应该可以工作。

最新更新