SpringEL表达式

[Python图像处理] 一.图像处理基础知识及OpenCV入门函数 该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别、图像分类应用。希望文章对您有所帮助,如果有不足之处,还请海涵~ 同时推荐作者的C++图像系列知识: [数字图像处理] 一.MFC详解显示BMP格式图片 [数字图像处理] 二.MFC单文档分割窗... 阅读详情
一. SpringEL表达式的简介

Spring的表达式语言,简称SpELl,是一个支持运行时检查和操作对象图的强大的表达式语言,和我们之前学习过的JSP中的EL表达式类似,SPEL使用的是#{}作为定界符,所有在大括号中的字符都被认为的SPEL,SPEL为bean的属性进行动态赋值提供了非常大的便利,通过SPEL可以实现:

  • 通过bean的ID对bean进行引用,类似于 ref标签,比ref更强大
  • 可以调用方法以及引用对象的属性
  • 可以进行计算(数学运算、比较运算、逻辑运算、三目运算等)
  • 支持正则表达式

体验SpringEL:

<bean id="car" class="com.nhkj.spel.Car">

​		<property name="brand" value="Audi"></property>

​		<property name="color" value="red"></property>

​		<property name="maxSpeed" value="200"></property>

​		<property name="price" value="300000"></property>

​		<!-- 通过SPEL表达式可以获得类中的常量 
					求周长					-->

​		<property name="perimeter" value="#{T(java.lang.Math).PI*60}"></property>

​	</bean>

 

​	<bean id="car2" class="com.nhkj.spel.Car">

​		<property name="brand" value="Chery"></property>

​		<property name="color" value="red"></property>

​		<property name="maxSpeed" value="200"></property>

​		<property name="price" value="100000"></property>

​		<!-- 通过SPEL表达式可以获得类中的常量 -->

​		<property name="perimeter" value="#{T(java.lang.Math).PI*60}"></property>

​	</bean>

 

​	<bean id="person" class="com.nhkj.spel.Person">

​		<property name="car" ref="car2"></property>

​		<property name="name" value="zwj"></property>

​		<!-- 使用了三目运算符和关系运算 -->

​		<property name="level" value="#{car2.price >= 300000?'金领':'白领'}"></property>

​	</bean>
二. SpringEL的使用
  • SPEL表达式可以使用字面量(意义不大),字面量仅限于字符串、基本数据类型

  • 引用bean、属性、方法

  • SPEL支持数学运算(加减乘除取模)

  • SPEL支持关系运算

    ​ < 、>、 <=、 >=、 ==、 != 所有的关系运算结果 是boolean类型

  • SPEL支持逻辑运算:xml中支持使用&& 表示并且,||表示或者,!表示非,但是不推荐使用,推荐使用效果相同的and,or,not

    ​ and(&&) 表示并且,连接多个boolean类型的运算符

    ​ or(||) 表示或者,连接多个boolean类型的运算符

    ​ not(!) 表示非,后面跟上一个boolean类型的运算符

  • SPEL支持三目运算符

  • SPLE支持正则表达式

<!-- 使用正则判断 -->

​		<property name="email" value="#{car3.getBrand() matches '\w{3,5}@\w{3,8}.(com|cn)'}"></property>
  • SPEL支持调用静态属性和静态方法
<property name="price" value="#{T(java.lang.Math).round(100000.53452345234)}"></property>
小结

SpringEL表达式操作类似于jsp中的EL表达式,使用#{}作为定界符,可以进行一些常用的操作。

ABAP Cloud 开发教程的文章目录 本教程涵盖 ABAP 云端 Client 处理、多租户架构、ABAP Cloud开发、动态编程优化、SQL语法改进等技术主题。最新版本1.0.0(更新至2025-12-12),包含197篇文章,重点文章包括《ABAP Client Handling与隔离机制》《ABAP Platform 2021泛型编程》《SAP BTP ABAP多租户应用开发》等,为开发者提供从基础到进阶的实战指南。 阅读详情

相关推荐

DSP28335与Vofa+上位机通信实战:SCIb配置避坑指南(附完整代码)

本文提供DSP28335与Vofa+上位机通信的实战指南,重点解析SCIb模块配置的常见问题与解决方案。针对研旭开发板的硬件连接、波特率精确计算、FIFO高效使用以及FireWater协议封装进行了详细说明,并附有完整代码,帮助开发者快速实现实时数据可视化与波形分析,提升调试效率。

weixin_29172963的博客 150

spring的EL表达式

          Spring的EL表达式简称为SpEL,让他OGNL表达式等表达式相似,他与spring直接是互相独立的,比如负责解析字符串的接口(ExpressionParse).可以先看下官方的例子: ExpressionParser parser = new SpelExpressionParser(); Expression exp = parser.parseExpressio...

u012045045的博客 1万+

VS2019集成AddressSanitizer:C++内存错误检测实战指南

在C++开发中,内存管理是核心挑战之一,涉及堆、栈和全局变量的分配与释放。其原理在于程序运行时对内存地址的访问必须严格遵循分配边界和生命周期规则,否则会导致缓冲区溢出、释放后使用等严重错误。这类问题的技术价值在于直接影响程序的稳定性、安全性和性能,是高质量软件必须攻克的基础难题。应用场景广泛,从嵌入式系统到大型服务器软件,都需要可靠的内存错误检测机制。AddressSanitizer(ASan)作为一种编译时插桩技术,通过影子内存和运行时检查,能精准定位堆缓冲区溢出、释放后使用等隐蔽错误。本文以Visual

weixin_34356310的博客 279

掌握Spring EL表达式的基础知识

在这篇博客中,我们将深入研究Spring中的EL表达式,解释什么是EL表达式,为什么它在Spring框架中如此重要。通过简单易懂的例子,我们将帮助读者建立对EL表达式基础概念的坚实理解。

todoitbo的博客 1万+

vue引入使用腾讯地图

// 引入鹅厂地图 initMap(lat = 0.0000000, lng = 0.0000000) { // 定义地图中心点坐标- var center = new TMap.LatLng(lat, lng) // 定义map变量,调用 TMap.Map() 构造函数创建地图 map = new TMap.Map(document.getElementById('txMapBox'), { center: center, // 设.

LiangRZ 4536

微信内置浏览器抓包全攻略:从ADB配置到Chrome调试(附常见问题解决)

本文提供了一套完整的微信内置浏览器抓包与调试解决方案。从ADB工具的深度配置与稳定性连接开始,详细讲解了如何开启X5内核调试开关,并利用Chrome DevTools建立远程连接。文章重点剖析了Network面板进行网络请求抓取、性能分析和问题定位的实战技巧,并附带了设备连接失败、无网络请求等常见问题的排查指南,帮助开发者高效解决微信H5页面调试难题。

gitlab7runner的博客 543

Spring的EL表达式

Spring的EL表达式

我喂自己袋盐 2万+

SAP移动类型

SAP移动类型移动类型定义 移动类型定义

qq_20593197的博客 6204

Spring EL 表达式的简单介绍和使用

package gtcom.governance.impl.util; import org.apache.commons.lang3.StringUtils; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.standard.SpelExpressionPa

一线大码 1万+

【Rcode】生存分析: KM & COX回归& 随机森林& nomogram

本文使用了R——survival包下的lung数据进行方法测试: 1)KM 2) Cox回归:多因素 3)随机森林因子(根据cox回归结果) 4)nomogram ( 根据cox回归结果,建立了中位生存时间,1年5年生存率的概率计算) -------------------????????‍♀️本文只有干货,非常干!????----------------------------- 一、数据加载 #生存分析 library("survival") library("survminer") data("

weixin_43172152的博客 9273

汇川PLC用户程序结构详解:如何像搭积木一样配置多任务?附EtherCAT最佳实践

本文深入解析汇川PLC用户程序结构,阐述如何像搭积木一样,通过POU、FB、FC等模块化组件高效配置多任务。文章重点结合EtherCAT通讯场景,分享了任务周期、优先级设置的最佳实践与关键避坑指南,帮助工程师构建稳定、高效的运动控制系统。

weixin_29184075的博客 539

Spring EL表达式官方文档学习

SpEL(Spring Expression Language)是Spring框架中用于表达式语言的一种方式。它类似于其他编程语言中的表达式语言,用于在运行时计算值或执行特定任务。SpEL提供了一种简单且强大的方式来访问和操作对象的属性、调用对象的方法,以及实现运算、条件判断等操作。它可以被用于XML和注解配置中,可以用于许多Spring框架中的特性,如依赖注入、AOP、配置文件等。SpEL表达式可以在字符串中进行定义,使用特殊的语法和符号来表示特定的操作。

pscool的博客 3183

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

SpringEL 表达式

今天翻阅Spring in action一书,无意中看到了SpringEL 表达式 (以下简称EL),说来惭愧,spring in action 一书已经差不多看过一遍了,居然到现在才知道 EL。 EL的用法很简单:#{表达式},跟JSP的EL表达式差不多,都是在系统运行时,根据EL中的表达式,动态获取其他bean中的属性或方法返回值。 例如:

国人当自信的专栏 4910

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

55_SpringEL表达式

如果遇到乱码的情况,请将配置文件的编码格式切换成UTF-8(可以在IDEA设置中进行配置)然后在@PropertySource注解中添加属性 encoding = “UTF-8” 这样就正常了,当然,其实一般情况下也很少会在配置文件中用到中文。是一种强大,简洁的装配 Bean 的方式,它可以通过运行期间执行的表达式将值装配到我们的属性或构造函数当中,更可以调用 JDK 中提供的静态常量,获取外部 Properties 文件中的的配置。这样,我们有时候在使用配置文件中的值时,就能进行一些简单的处理了。

成长需要沉淀。 1107

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

第四课 SpringEL表达式

Sping动态表达式语言(简称SpringEL)是一个运行时查询和操作对象的强大动态语言。 其语法类似于EL表达式,具有显示诸如显式方法调用和基本的字符串模板函数等。 JVM动态语言 java是一门强类型的静态语言,所有代码在运行之前都必须进行严格的类型检查并编译成JVM字节码,因此虽然在安全、性能方面得到了保证,但是牺牲了灵活性,这个特征就决定了java在语言层面无法直接进行表达式语句的动...

孤君只待两相月 1877

springEL表达式详解及应用

笔者开发的项目当中比较频繁的使用SpringEL,例如通过SpringEL获取外部properties中的值,又或者项目当中的数据字典亦是使用SpringEL的一个场景,我们抽象出一个Param类的集合,通过SpringEL集合筛选和投影获取我们想要的字段参数添加到我们的程序逻辑当中(笔者项目中的Spring Security亦使用SpringEL,但本文章不加以叙述)SpringEL在使用时仅仅是一个字符串,不易于排错与测试,也没有IDE检查我们的语法,当出现错误时较难检测。

m0_67391870的博客 5041

SpringEl表达式解析

应用场景: 1、用户日志 2、缓存处理 3、.......... import org.springframework.expression.EvaluationContext; import org.springframework.expression.Expression; import org.springframework.expression.Exp...

1221

springEL表达式

实现步骤 需要导入jar包 :spring-expression.jar 解析字符串 SpringEL核心接口 ExpressionParser: 解析表达式字符串,表达式字符串是一个用单引号标注或者用转义的双引号标注的字符串. Expression: 接口用来计算表达式字符串值 测试 导入jar包 spring-expression.jar &lt;dependency&gt; ...

fdk2zhang的博客 1550

SpringEl表达式(转)

什么是SpringEL? Spring3中引入了Spring表达式语言—SpringEL,SpEL是一种强大,简洁的装配Bean的方式,他可以通过运行期间执行的表达式将值装配到我们的属性或构造函数当中,更可以调用JDK中提供的静态常量,获取外部Properties文件中的的配置 为什么要使用SpringEL? 我们平常通过配置文件或Annotaton注入的Bean,其实都可以称为静态性注入,试想一...

weixin_43343423的博客 348

Spring Security的SpringEL表达式

Spring Security允许我们在定义URL访问或方法访问所应有的权限时使用Spring EL表达式,在定义所需的访问权限时如果对应的表达式返回结果为true则表示拥有对应的权限,反之则无。Spring Security可用表达式对象的基类是SecurityExpressionRoot,其为我们提供了如下在使用Spring EL表达式对URL或方法进行权限控制时通用的内置表达式。 表...

wptalenter的博客 688

spring表达式SpringEL

注意Spring表达式使用的是#{"xxx"},而不是${"xxx"}。${"xxx"}主要用来解析properties、yml文件的,而spring表达式#{"xxx"}是用来解析bean的,二者请勿混淆。本篇,我们介绍的是spring表达式,也就是 #{"xxx"}  。  SpringEL是spring3里面的东东,不是spring4,也不是springboot,更不是springclou...

jasnet_u的博客 2375

Spring04-SpringEL表达式

SpEL 是一种强大、简洁的装配 Bean 的方式,它可以通过运行期间执行的表达式将值装配到属性或构造函数当中,更可以调用 JDK 中提供的静态常量,获取外部 Properties 文件中的的配置。

Frak-Freud 的博客 208

AOP+注解+SpringEL表达式记录操作日志

在后台管理系统中,日志是不可或缺的,通常,在开发的时候我们会设置日志级别为debug或info,上线后再设置为error,这些系统日志在帮助我们排查系统问题时作用非常大。但还有一类日志也是非常重要的,那就是操作日志,也就是记录用户在某个时间点干了什么事的日志。这篇文章就简单聊聊如何更好的记录操作日志。 在参与过不少项目的开发后,大概总结出了下面这么几种记录日志的方式。 第一种就是直接调用日志方法,类似下面这种,这类代码在以前的老系统中非常常见,好处是代码清晰,但太冗余了,总不可能每次要记录日志都复制一遍,如

Remember_Z的博客 2262

el表达式 param_深入浅出springEL表达式

什么是SpringEL?Spring3中引入了Spring表达式语言—SpringEL,SpEL是一种强大,简洁的装配Bean的方式,他可以通过运行期间执行的表达式将值装配到我们的属性或构造函数当中,更可以调用JDK中提供的静态常量,获取外部Properties文件中的的配置为什么要使用SpringEL?我们平常通过配置文件或Annotaton注入的Bean,其实都可以称为静态性注入,试想一下,若...

weixin_39902472的博客 165

【深入浅出Spring原理及实战】「原理分析专题」从零开始教你SpringEL表达式使用和功能分析讲解指南(上篇)

任何的表达式其组成之中一定会包含相应的边界形式,例如:在jsp中的el里面使用${表达式},在spring里面,如果用户有需要也可以定义我们的边界.首先观察解析表达式的操作类:Expressionparser。

世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。 1409
上一篇: Spring bean的作用域
下一篇: Spring bean的生命周期
胖头鱼小子
博客等级 码龄6年 10粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值