网站首页 > 博客文章 正文
思考:什么是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分析)
你 发表评论:
欢迎- 06-23MySQL合集-mysql5.7及mysql8的一些特性
- 06-23MySQL CREATE TABLE 简单设计模板交流
- 06-23MYSQL表设计规范(mysql设计表注意事项)
- 06-23MySQL数据库入门(四)数据类型简介
- 06-23数据丢失?别慌!MySQL备份恢复攻略
- 06-23MySQL设计规范(mysql 设计)
- 06-23MySQL数据实时增量同步到Elasticsearch
- 06-23MySQL 避坑指南之隐式数据类型转换
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)