Spring @Value("${property:xxx}") 缺省值

举报
隔壁老汪 发表于 2022/06/24 00:24:36 2022/06/24
【摘要】 1. @Value Examples To set a default value in Spring expression, use Elvis operator :     #{expression?:default value} Copy Few examples : &nb...


1. @Value Examples
To set a default value in Spring expression, use Elvis operator :

    #{expression?:default value}
Copy
Few examples :

    @Value("#{systemProperties['mongodb.port'] ?: 27017}")
    private String mongodbPort;
 
    @Value("#{config['mongodb.url'] ?: '127.0.0.1'}")
    private String mongodbUrl;    
    
    @Value("#{aBean.age ?: 21}")
    private int age;
Copy
P.S @Value has been available since Spring 3.0

2. @Value and Property Examples
To set a default value for property placeholder :

    ${property:default value}
Copy
Few examples :

    //@PropertySource("classpath:/config.properties}")
    //@Configuration
    
    @Value("${mongodb.url:127.0.0.1}")
    private String mongodbUrl;
    
    @Value("#{'${mongodb.url:172.0.0.1}'}")
    private String mongodbUrl;
    
    @Value("#{config['mongodb.url']?:'127.0.0.1'}")
    private String mongodbUrl;
Copy
config.properties
mongodb.url=1.2.3.4
mongodb.db=hello
那个 default value,就是前面的property不存在时的默认值。

写个例子测试一下:

app.properties:

last.time=10
spring配置:

    <bean id="configProperties"
        class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="fileEncoding" value="UTF-8" />
        <property name="locations">
            <list>
                <value>classpath:app.properties</value>
            </list>
        </property>
    </bean>
    <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
        <property name="properties" ref="configProperties" />
    </bean>
测试代码:

    @Value("${last.time:300}")
    private String lastTime;
    
    @Test
    public void test2() {
        System.out.println(lastTime);
    }
输出:10

把app.properties注释

#last.time=10
输出:300
 

文章来源: blog.csdn.net,作者:隔壁老瓦,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/wxb880114/article/details/84029227

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。