如何在 Spring 表达式语言中 运行 嵌套求值
How to run nested evaluations in Spring Expression Language
我想使用 SPeL,我需要评估配置源中的参数。问题是 name/key 是动态的。所以我依靠一个参数来解决另一个。
我基本上需要检查一个布尔参数。
示例:
部分 key/prefix:app.name
全密钥:${app.name}.feature.isEnabled
所以,在 SPeL 中,我尝试了类似的东西:
#{'${app.name}.feature.isEnabled' != null && !'${app.name}.feature.isEnabled'}
但这编译但不起作用。
如果app.name=my-app,以上解析为字符串文字:
我的应用程序。feature.isEnabled
文字本身 id 没问题,但我实际上需要这个键的值。
如果我尝试用另一个表达式换行,它不会编译:
#{${'${app.name}.feature.isEnabled'} != null && !${'${app.name}.feature.isEnabled'}}
我尝试了上述的不同变体,但无法使用正确的公式。
这可能吗?
可能有一些更简单的方法,但这有效...
"#{'${${app.name}.feature.isEnabled}' != null ? '${${app.name}.feature.isEnabled}'.toLowerCase().equals('true') : 'false'}"
但是如果未设置 属性,则需要 属性 占位符配置器上的 ignore-unresolvable="true"
。
我想使用 SPeL,我需要评估配置源中的参数。问题是 name/key 是动态的。所以我依靠一个参数来解决另一个。 我基本上需要检查一个布尔参数。
示例: 部分 key/prefix:app.name 全密钥:${app.name}.feature.isEnabled
所以,在 SPeL 中,我尝试了类似的东西:
#{'${app.name}.feature.isEnabled' != null && !'${app.name}.feature.isEnabled'}
但这编译但不起作用。
如果app.name=my-app,以上解析为字符串文字: 我的应用程序。feature.isEnabled
文字本身 id 没问题,但我实际上需要这个键的值。
如果我尝试用另一个表达式换行,它不会编译:
#{${'${app.name}.feature.isEnabled'} != null && !${'${app.name}.feature.isEnabled'}}
我尝试了上述的不同变体,但无法使用正确的公式。
这可能吗?
可能有一些更简单的方法,但这有效...
"#{'${${app.name}.feature.isEnabled}' != null ? '${${app.name}.feature.isEnabled}'.toLowerCase().equals('true') : 'false'}"
但是如果未设置 属性,则需要 属性 占位符配置器上的 ignore-unresolvable="true"
。