对于最新的稳定版本,请使用 Spring Framework 6.2.10spring-doc.cadn.net.cn

类型

您可以使用特殊的T运算符来指定java.lang.Class(这 类型)。静态方法也使用此运算符调用。这StandardEvaluationContext使用TypeLocator查找类型,以及StandardTypeLocator(可以替换)是在了解java.lang包。这意味着T()java.langpackage 不需要完全限定,但所有其他类型引用都必须是。这 以下示例演示如何使用T算子:spring-doc.cadn.net.cn

Class dateClass = parser.parseExpression("T(java.util.Date)").getValue(Class.class);

Class stringClass = parser.parseExpression("T(String)").getValue(Class.class);

boolean trueValue = parser.parseExpression(
		"T(java.math.RoundingMode).CEILING < T(java.math.RoundingMode).FLOOR")
		.getValue(Boolean.class);
val dateClass = parser.parseExpression("T(java.util.Date)").getValue(Class::class.java)

val stringClass = parser.parseExpression("T(String)").getValue(Class::class.java)

val trueValue = parser.parseExpression(
		"T(java.math.RoundingMode).CEILING < T(java.math.RoundingMode).FLOOR")
		.getValue(Boolean::class.java)

如果您的应用程序或框架管理自己的EvaluationContext,您可能需要 手动配置StandardTypeLocator使用特定的ClassLoader以确保 SpEL 表达式解析器能够可靠地定位用户类型。spring-doc.cadn.net.cn

例如,StandardBeanExpressionResolverspring-context模块 配置一个StandardTypeLocator使用 beanClassLoader的相应BeanFactory.spring-doc.cadn.net.cn