我想使用SPeL,我需要评估配置源中的参数。问题是名称/键是动态的。所以我依靠一个参数来解决另一个参数。 我基本上需要检查布尔参数。
实施例: 部分键/前缀:app.name 完整密钥:$ {app.name} .feature.isEnabled
所以,在SPeL中我尝试了类似的东西:
#{'${app.name}.feature.isEnabled' != null && !'${app.name}.feature.isEnabled'}
但这会编译但不起作用。
如果app.name = my-app,则上面解析为字符串文字: 我的-app.feature.isEnabled
文字本身就可以了,但实际上我需要这个键的值。
如果我尝试用另一个表达式换行,它就不会编译:
#{${'${app.name}.feature.isEnabled'} != null && !${'${app.name}.feature.isEnabled'}}
我尝试了上述不同的变化,但无法使其达到正确的公式。
这可能吗?
答案 0 :(得分:4)
可能有一些更简单的东西,但这有效......
"#{'${${app.name}.feature.isEnabled}' != null ? '${${app.name}.feature.isEnabled}'.toLowerCase().equals('true') : 'false'}"
但是如果未设置属性,则需要在属性占位符配置器上使用ignore-unresolvable="true"
。