java – 如何在Spring @Value注释中正确指定默认值?
发布时间:2020-05-27 07:38:42 所属栏目:Java 来源:互联网
导读:最初我有以下规范: @Value(#{props.isFPL})private boolean isFPL=false; 这样可以正确地从属性文件获取值: isFPL = true 但是,默认情况下,下面的表达式会导致错误: @Value(#{props.isFPL:false})private boolean isFPL=false; 表达式解析失败;嵌套异常是o
|
最初我有以下规范: @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;
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- java – 访问给定类型的所有spring bean
- Java – HashSet实现不支持remove()的迭代器的最佳方法
- java – QPID – Spring CachingConnectionFactory – 重新
- javaMybatis映射属性,高级映射详解
- java对properties文件进行解析
- java – Play Framework 2.4不接受控制器的“公共静态结果”
- java – 字节码操作来拦截设置字段的值
- Java包导入别名
- java – 使用application.properties在Spring Boot中外化lo
- java – 关于Spring bean容器中的范围和垃圾回收
