做房产信息互联网网站需要什么资质怎么搜索关键词
目前网上没有搜到关于SpringEL表达式编译模式SpelCompilerMode的详细讲解,都是对官方文档的翻译,并没有详细说明根本差异。
该文章为个人原创,谢绝抄袭
SpringEL表达式官方文档:https://docs.spring.io/spring-framework/reference/core/expressions.html
在构建SpringEL表达式解析器时候,发现可以传递个SpelCompilerMode
参数,这个值不传的话默认是OFF
// SpelParserConfiguration config = new SpelParserConfiguration();
SpelParserConfiguration config = new SpelParserConfiguration(SpelCompilerMode.IMMEDIATE, this.getClass().getClassLoader());
SpelExpressionParser spelExpressionParser = new SpelExpressionParser(config);
TemplateParserContext parserContext = new TemplateParserContext();
Expression expression = spelExpressionParser.parseExpression(spel, parserContext);
String value = expression.getValue(evaluationContext, String.class);
从名字上能看出, 这是对SpringEL表达式编译模式的一个设置。有如下三个枚举值
SpelCompilerMode#OFF
,SpelCompilerMode#IMMEDIATE
,SpelCompilerMode#MIXED
看了下官方文档:SpringEL表达式编译模式
解释如下
SpEL编译器
Spring EL 表达式默认是被解释执行