@Value boolean returns 'invalid boolean value' 值为 true
@Value boolean returns 'invalid boolean value' of value 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}"
?
@Value("#{new Boolean('${startup.notify.enabled}')}")
很有魅力
编辑
如果您在使用 @Value
时遇到其他 int、String 等字段的问题,请确保您的配置文件中包含 PropertySourcesPlaceholderConfigurer
。
@Bean
public static PropertySourcesPlaceholderConfigurer pspc() {
return new PropertySourcesPlaceholderConfigurer();
}
我试图简单地从属性文件中获取值,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}"
?
@Value("#{new Boolean('${startup.notify.enabled}')}")
很有魅力
编辑
如果您在使用 @Value
时遇到其他 int、String 等字段的问题,请确保您的配置文件中包含 PropertySourcesPlaceholderConfigurer
。
@Bean
public static PropertySourcesPlaceholderConfigurer pspc() {
return new PropertySourcesPlaceholderConfigurer();
}