java – 如何在Spring @Value注释中正确指定默认值?
发布时间:2020-12-14 16:23:08 所属栏目:Java 来源:网络整理
导读:最初我有以下规范: @Value("#{props.isFPL}")private boolean isFPL=false; 这样可以正确地从属性文件获取值: isFPL = true 但是,默认情况下,下面的表达式会导致错误: @Value("#{props.isFPL:false}")private boolean isFPL=false; 表达式解析失败;嵌套异
最初我有以下规范:
@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; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |