Spring 应用程序.属性文件中的布尔值?

2022-09-02 10:03:15

是否可以在Spring配置文件中具有布尔值?

我在我的bean中写了以下字段:

@Value("${pdk.populatedemo}")
private boolean populateDemo;

但如果导致以下异常:

Could not autowire field: private boolean com.inthemoon.pdk.data.DatabaseService.populateDemo; nested exception is org.springframework.beans.TypeMismatchException: 
Failed to convert value of type [java.lang.String] to required type [boolean]; nested exception is java.lang.IllegalArgumentException: 
Invalid boolean value [1;]

这里我试过了

pdk.populatedemo=1;

在。我也尝试过,还有其他一些。application.properties=true


答案 1

布尔类型的正确值为

pdk.populatedemo=true

1不是布尔字段的有效值,并且不得在属性文件中对布尔值使用分号(如错误消息中清楚地看到的那样)。


答案 2

您有多种选择:

# in case of set it hardcoded ALWAYS true
pdk.populatedemo=true

# in case of set it hardcoded ALWAYS false
pdk.populatedemo=false

# in case of set it dynamically,
# where isPopulatedemo is a system property or an environment variable having a string value either "true" or "false"
pdk.populatedemo=${isPopulatedemo} 

推荐