最初我有以下规范:
@Value("#{props.isFPL}") private boolean isFPL=false;
isFPL = true
但是,默认情况下,下面的表达式会导致错误:
@Value("#{props.isFPL:false}") private boolean isFPL=false;
表达式解析失败;嵌套异常是org.springframework.expression.spel.SpelParseException:EL1041E:(pos 28):解析有效的表达式后,表达式中还有更多数据:’colon(:)’
我也试图用$而不是#.
@Value("${props.isFPL:true}") private boolean isFPL=false;
解决方法
尝试$如下
@Value("${props.isFPL:true}") private boolean isFPL=false;
还要确保将ignore-resource-no-found设置为true,以便如果属性文件丢失,则将采用默认值.
另外,将以下内容放在 –
上下文文件如果使用基于xm的配置:
<context:property-placeholder ignore-resource-not-found="true"/>
在配置类中如果使用Java配置:
@Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { PropertySourcesPlaceholderConfigurer p = new PropertySourcesPlaceholderConfigurer(); p.setIgnoreResourceNotFound(true); return p; }