You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring 5.x中SpEL嵌套变量引用失效问题及最简修复方案

Spring 5.x 嵌套属性表达式解析问题的最简修复方案

在Spring 5.x中,默认属性解析器不再支持${${bar}.foo}这类双层嵌套的占位符直接解析,无需修改Java代码的最简修复方式是改用**Spring表达式语言(SpEL)**实现嵌套解析,有两种简洁写法可选:

  • 写法一:

    <property name="boo" value="#{${'${bar}'}.foo}"/>
    

    解析逻辑:${'${bar}'}先解析出bar的取值"foo",再通过SpEL的#{}语法解析foo.foo对应的属性值2。

  • 写法二(逻辑更清晰):

    <property name="boo" value="#{environment.getProperty(environment.getProperty('bar') + '.foo')}"/>
    

    解析逻辑:直接通过Spring环境对象environment的getProperty方法,先获取bar的值,拼接.foo后再获取最终目标属性值。

若想完全恢复Spring 4的嵌套占位符解析行为,也可以自定义配置PropertyPlaceholderConfigurer Bean,但相比SpEL写法,这种方式需要额外配置代码,不够简洁。

内容的提问来源于stack exchange,提问作者Mikhail T.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 11:32:02