最初,我有以下规范:
@Value("#{props.isFPL}")
private boolean isFPL=false;
Run Code Online (Sandbox Code Playgroud)
这可以很好地正确获取属性文件中的值:
isFPL = true
Run Code Online (Sandbox Code Playgroud)
但是,以下带有默认值的表达式会导致错误:
@Value("#{props.isFPL:false}")
private boolean isFPL=false;
Run Code Online (Sandbox Code Playgroud)
表达式解析失败; 嵌套异常是org.springframework.expression.spel.SpelParseException:EL1041E:(pos 28):解析有效表达式后,表达式中还有更多数据:'冒号(:)'
我也尝试用$而不是#.
@Value("${props.isFPL:true}")
private boolean isFPL=false;
Run Code Online (Sandbox Code Playgroud)
然后注释中的默认值工作正常,但我没有从属性文件中获取正确的值: