猿问

@Value boolean 返回值 true 的“无效布尔值”

我试图简单地从属性文件中获取值, false像这样的布尔值:


@PropertySource("classpath:/conf/default/server.properties")

........

@Value("${startup.notify.enabled}")

private boolean enabled;

在属性文件中:


startup.notify.enabled=true

为什么会出现此错误?


Caused by: java.lang.IllegalArgumentException: Invalid boolean value [${startup.notify.enabled}]

    at org.springframework.beans.propertyeditors.CustomBooleanEditor.setAsText(CustomBooleanEditor.java:123)

    at org.springframework.beans.TypeConverterDelegate.doConvertTextValue(TypeConverterDelegate.java:464)

    at org.springframework.beans.TypeConverterDelegate.doConvertValue(TypeConverterDelegate.java:437)

    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:195)

    at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:125)

    at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:61)

这可能是因为占位符吗"${startup.notify.enabled}"?


SMILET
浏览 640回答 1
1回答

狐的传说

@Value("#{new Boolean('${startup.notify.enabled}')}")奇迹般有效编辑如果您对与 一起使用的其他 int、String 等字段有问题@Value,请确保您PropertySourcesPlaceholderConfigurer的配置文件中有。@Beanpublic static PropertySourcesPlaceholderConfigurer pspc() {    return new PropertySourcesPlaceholderConfigurer();}
随时随地看视频慕课网APP

相关分类

Java
我要回答