【问题标题】:Can I set default value in a placeholder if the first property is not null but is empty?如果第一个属性不为空但为空,我可以在占位符中设置默认值吗?
【发布时间】:2021-04-28 16:44:17
【问题描述】:

${property:default} 中的 value 是一个属性的值,或者如果该属性没有定义,则采用默认值。

如果属性定义为空字符串“”,是否可以修改行为,也许使用#{} 而不是${},以采用默认值?

【问题讨论】:

    标签: java spring yaml


    【解决方案1】:

    如果加载的值为空,您可以使用 Spring 表达式语言 (SpEL) 应用默认值。

    @Value("#{'${myProp:}'?.length() == 0 ? 'default value' : '${myProp:}'}")
    public String prop;
    

    在上面的例子中,myProp 是一个属性。您可以根据需要修改SpEL

    您可以将 SpEL 提高到,

    @Value("#{'${myProp:}' <= '' ? 'default value' : '${myProp:}'}")
    

    如果给定的属性包含空格,您可以将其修剪下来,然后检查值。

    @Value("#{'${myProp:}'?.trim() <= '' ? 'default value' : '${myProp:}'}")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      • 1970-01-01
      • 2016-11-06
      • 2020-05-23
      • 2017-03-26
      • 1970-01-01
      相关资源
      最近更新 更多