网站首页 > 博客文章 正文
思考:什么是SpEl?它干什么用的?
答: SpEl是Spring Expression Language缩写,SpEL是一种在运行期间能执行查询和操作对象的表达式语言,它通过运行期执行的表达式将值装配到Bean的属性或构造器参数中,所以表达式语言给静态Java语言增加了动态功能。
SpEL是单独模块,只依赖于core模块,不依赖于其他模块,可以单独使用,包含了丰富的表达式用法:基本变量表达式、算数表达式、关系表达式、逻辑表达式、类相关表达式、集合表达式等。
思考:SpEL怎么工作的?
答:先了解几个概念
- 表达式:“干什么?”,表达式是表达式语言的核心.
- 解析器:“谁来干?”,用于将字符串表达式解析为表达式对象
- 上下文:“在哪干?”,表达式对象执行的环境,该环境定义变量、自定义函数等等;
- 上下文对象:“对谁干?”,上下文对象表示了当前表达式操作的对象。
具体工作流程如下图:
- 首先定义表达式:#{poet.getPoem()};
2. 定义解析器ExpressionParser实现,SpEL提供默认实现SpelExpressionParser分析解 析表达式,提供getValue简单方法用于获取表达式值;
3. 定义表达式上下文对象(可选),SpEL使用EvaluationContext接口表示上下文对象,用于设置根对象、自定义变量、自定义函数、类型转换器等,SpEL提供默认实现StandardEvaluationContext;
4. 使用表达式对象,根据上下文对象(可选)求值(调用表达式对象的getValue方法)获得结果。
猜你喜欢
- 2024-09-11 Spring Security 全局方法安全:预过滤和后过滤(2)
- 2024-09-11 「Spring Boot 源码研究 」- 自动化装配条件化配置Conditional剖析
- 2024-09-11 面试:Spring Boot 中的条件注解底层是如何实现的?
- 2024-09-11 SpringBoot系列(十五)整合缓存,项目必用的技术
- 2024-09-11 如何优雅地记录操作日志?(如何优雅地记录操作日志)
- 2024-09-11 SpEL应用实战(应用spc技术)
- 2024-09-11 有趣的SpEL注入(有趣的工作群名称大全)
- 2024-09-11 SpringBoot 实现异步记录复杂日志
- 2024-09-11 redis 分布式锁(redis 分布式锁失效时间)
- 2024-09-11 CVE-2022-22947分析(cve-2020-0796分析)
你 发表评论:
欢迎- 08-06nginx 反向代理
- 08-06跨表插入连续的日期,sheetsname函数#excel技巧
- 08-06初中生也能学的编程,不走弯路,先用后学
- 08-06find命令的“七种武器”:远不止-name和-type
- 08-06恶意代码常见的编程方式
- 08-06kali2021ping 外网不通
- 08-06因为一个函数strtok踩坑,我被老工程师无情嘲笑了
- 08-06hadoop集群搭建详细方法
- 39℃nginx 反向代理
- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- powershellfor (73)
- messagesource (71)
- plsql64位 (73)
- vueproxytable (64)
- npminstallsave (63)
- #NAME? (61)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- nacos启动失败 (64)
- ssh-add (70)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- qcombobox样式表 (68)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)