快捷搜索:  汽车  科技

spring组合注解实现原理(SpEL表达式工作流程)

spring组合注解实现原理(SpEL表达式工作流程)3. 定义表达式上下文对象(可选),SpEL使用EvaluationContext接口表示上下文对象,用于设置根对象、自定义变量、自定义函数、类型转换器等,SpEL提供默认实现StandardEvaluationContext;2. 定义解析器ExpressionParser实现,SpEL提供默认实现SpelExpressionParser分析解 析表达式,提供getValue简单方法用于获取表达式值;答:先了解几个概念具体工作流程如下图:SpEL表达式工作流程

思考:什么是SpEl?它干什么用的?

答: SpEl是Spring Expression Language缩写,SpEL是一种在运行期间能执行查询和操作对象的表达式语言,它通过运行期执行的表达式将值装配到Bean的属性或构造器参数中,所以表达式语言给静态Java语言增加了动态功能。

SpEL是单独模块,只依赖于core模块,不依赖于其他模块,可以单独使用,包含了丰富的表达式用法:基本变量表达式、算数表达式、关系表达式、逻辑表达式、类相关表达式、集合表达式等。

思考:SpEL怎么工作的?

答:先了解几个概念

  1. 表达式:“干什么?” 表达式是表达式语言的核心.
  2. 解析器:“谁来干?”,用于将字符串表达式解析为表达式对象
  3. 上下文:“在哪干?”,表达式对象执行的环境,该环境定义变量、自定义函数等等;
  4. 上下文对象:“对谁干?”,上下文对象表示了当前表达式操作的对象。

具体工作流程如下图:

spring组合注解实现原理(SpEL表达式工作流程)(1)

SpEL表达式工作流程

  1. 首先定义表达式:#{poet.getPoem()};

2. 定义解析器ExpressionParser实现,SpEL提供默认实现SpelExpressionParser分析解 析表达式,提供getValue简单方法用于获取表达式值;

3. 定义表达式上下文对象(可选),SpEL使用EvaluationContext接口表示上下文对象,用于设置根对象、自定义变量、自定义函数、类型转换器等,SpEL提供默认实现StandardEvaluationContext;

4. 使用表达式对象,根据上下文对象(可选)求值(调用表达式对象的getValue方法)获得结果。

猜您喜欢: