手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

编译器配置和限制

时间:2024-10-13 23:17:19

1、默认情况下,编译器未打开,但您可以通过两种不同的方式打开它。您可以使用解析器配置过程(前面讨论过)或在将SpEL用法嵌入到另一个组件中时使用系统属性来打开它。本节讨论这两个选项。

编译器配置和限制

2、编译器可以以三种模式之一操作,这些模式在org.springframework.expression.spel.SpelCompilerMode枚举中捕获。模式如下:

编译器配置和限制

3、IMMEDIATE模式存在,因为MIXED模式可能会导致具有副作用的表达式出现问题。如果编译后的表达式在部分成功后爆炸,则可能已经完成了影响系统状态的事情。如果发生这种情况,调用者可能不希望它以解释模式静默重新运行,因为表达式的一部分可能正在运行两次。

编译器配置和限制

4、选择模式后,使用SpelParserConfiguration配置解析器。以下示例显示了如何执行此操作:

编译器配置和限制

5、指定编译器模式时,还可以指定类加载器(允许传递null)。编译表达式在任何提供的子类加载器中定义。重要的是要确保,如果指定劲忧商偌了类加载器,它可以看到表达式评估过程中涉及的所有类型。如果未指定类加载器,则使用默认类加载器(通常是表达式求值期间运行的线程的上下文类加载器)。

编译器配置和限制

6、配置编译器的第二种方法是在SpEL嵌入到某个其他组件中时使用,并且可能无法通过配置对象对其进行配置。在这些情况下,可以使用系统属性。您可以设置spring.expression.comp足毂忍珩iler.mode属性为一个SpelCompilerMode枚举值(off,immediate,或mixed)。

编译器配置和限制

7、从Spring Framework 4.1开始,基本的编译框架已经到位。但是,该框架尚不支持编译各种表达式。最初的重点是可能在性能关键环境中使用的常用表达式。目前无法编译以下类型的表达式:

编译器配置和限制
© 手抄报圈