我如何解析混合文字文本和实际#{SpEL expressions}的“复杂”模板式SpEL表达式?例如:

the dog says #{dog.getSound()}

Apache Camel在其表达语言(包括SpEL)中支持这种类似于模板的功能,但是我还不能确定如何直接使用Vanilla SpEL完成此功能。

最佳答案

user guide中所述,评估TemplateParserContext中的Expression:

String randomPhrase =
    parser.parseExpression("random number is #{T(java.lang.Math).random()}",
                      new TemplateParserContext()).getValue(String.class);

// evaluates to "random number is 0.7038186818312008"

10-06 00:44