【发布时间】:2021-04-28 16:44:17
【问题描述】:
${property:default} 中的 value 是一个属性的值,或者如果该属性没有定义,则采用默认值。
如果属性定义为空字符串“”,是否可以修改行为,也许使用#{} 而不是${},以采用默认值?
【问题讨论】:
${property:default} 中的 value 是一个属性的值,或者如果该属性没有定义,则采用默认值。
如果属性定义为空字符串“”,是否可以修改行为,也许使用#{} 而不是${},以采用默认值?
【问题讨论】:
如果加载的值为空,您可以使用 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:}'}")
【讨论】: