表达式模板

表达式模板允许混合使用文字文本和一个或多个计算块。每个计算块都用您可以定义的前缀和后缀字符分隔。一个常见的选择是使用#{ }作为分隔符,如下例所示

  • Java

  • Kotlin

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

// evaluates to "random number is 0.7038186818312008"
val randomPhrase = parser.parseExpression(
		"random number is #{T(java.lang.Math).random()}",
		TemplateParserContext()).getValue(String::class.java)

// evaluates to "random number is 0.7038186818312008"

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