跳到主要内容

表达式模板化

DeepSeek V3 中英对照 Expression Templating

表达式模板允许将字面文本与一个或多个求值块混合在一起。每个求值块由你可以定义的前缀和后缀字符界定。常见的选择是使用 #{ } 作为界定符,如下例所示:

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

// evaluates to "random number is 0.7038186818312008"
java

字符串的求值是通过将字面文本 'random number is ' 与在 #{ } 分隔符内求值的表达式(在本例中,是调用 random() 方法的结果)连接起来完成的。parseExpression() 方法的第二个参数是 ParserContext 类型。ParserContext 接口用于影响表达式的解析方式,以支持表达式模板功能。在前一个示例中使用的 TemplateParserContext 位于 org.springframework.expression.common 包中,它是 ParserContext 的一个实现,默认情况下将前缀和后缀分别配置为 #{}