Spring表达式语言:SpEL

Easter79
• 阅读 467

1、Spring表达式语言(简称:SpEL):是一个支持运行时查询和操作对象图的强大的表达式语言。

2、语法类似于EL:SpEL使用#{...}作为定界符,所有在大括号内的字符都被认为是SpEL。

3、SpEL为bean的属性进行动态赋值提供了便利。

4、通过SpEL可以实现:

--通过bean的id对bean进行引用

--调用方法以及引用对象中的属性

--计算表达式的值

--正则表达式

【SpEL:字面量】

字面量的表示:

--整数:

--小数:

--科学计数法:

--String可以使用单引号或者双引号作为字符串的定界符号:

 

 

--Boolean:

【SpEL:引用Bean、属性和方法(1)】

(1)引用其他对象

1 <!--通过value属性和SpEL配置Bean之间的应用关系-->
2 <property name="prefix" value="#{prefixGenerator}"></property>

(2)引用其他对象的属性

1 <!--通过value属性和SpEL配置suffix属性值为另一个Bean的suffix属性值-->
2 <property name="suffix" value="#{sequenceGenerator2.suffix}"/>

(3)调用其他方法,还可以链式操作

1 <!--通过value属性和SpEL配置suffix属性值为另一个Bean方法的返回值-->
2 <property name="suffix" value="#{sequenceGenerator2.toString()}"/>

1 <!--方法的连缀-->
2 <property name="suffix" value="#{sequenceGenerator2.toString()。toUpperCase()}"/>

(4)调用静态方法或者静态属性:通过T()调用一个类的静态方法,它将返回一个Class Object,然后再调用相应的方法或属性

1 <property name="initValue" value="#{T(java.lang.Math).PI}"></property>

【SpELl支持的运算符号】

1、算数运算符:+,-,*,/,%,^。

2、加号还可以用作字符串连接。

3、比较运算符:<,>,==,<=,>=,It,gt,eg,le,ge

4、逻辑运算度:and,or,not

5、if-else运算符

6、正则表达式:matches

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
2年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
Spring 学习笔记(三):Spring Bean
1Bean配置Spring可以看做是一个管理Bean的工厂,开发者需要将Bean配置在XML或者Properties配置文件中。实际开发中常使用XML的格式,其中<bean中的属性或子元素如下:id:Bean在BeanFactory中的唯一标识,在代码中通过BeanFac
Wesley13 Wesley13
2年前
Java——基于AspectJ的AOP开发
1.AspectJ简介AspectJ是一个基于Java语言的AOP框架。Spring2.0以后新增了对AdpectJ切点表达式的支持。@AspectJ是AspectJ1.5新增功能,通过JDK5注解技术,允许直接在Bean类中定义切面。新版本Spring框架,建议使用AspectJ方式来开发AOP。使用AspectJ需要导
Stella981 Stella981
2年前
Spring IOC 练习
练习题实验一|通过IOC容器创建对象,并为属性赋值实验二|通过Bean的类型从IOC中获取bean的实例实验三3.1使用构造器在IOC中创建bean3.2通过p名称空间为bean赋值实验四4.1正确的为各种属性赋值测试使用nu11值、引用类型赋值(引用其他bean、引用内部bean)集合类型赋值(Lis
Stella981 Stella981
2年前
Spring Bean定义中表达式语言的支持
    SpEL(SpringExpressionLanguage,Spring表达式语言)的一个重要的作用就是扩展Spring容器的功能,允许在Bean定义中使用SpEL。XML配置文件和Annotation中都可以使用SpEL。在XML和Annotation中使用SpEL时,都需要使用{expression}的格式来包装表达式。    例如
Stella981 Stella981
2年前
Spring 4.3 的新功能和增强
核心容器改进核心容器额外提供了更丰富的元数据来改进编程。默认Java8的方法检测为bean属性的getter/setter方法。如果目标bean只定义了一个构造函数,则它无需要指定@Autowired注解@Configuration类支持构造函数注入。任何SpEL
Easter79 Easter79
2年前
Spring高级应用之注入嵌套Bean
在Spring中,如果某个Bean所依赖的Bean不想被Spring容器直接访问,可以使用嵌套Bean。和普通的Bean一样,使用<bean元素来定义嵌套的Bean,嵌套Bean只对它的外部的Bean有效,Spring容器无法直接访问嵌套的Bean,因此定义嵌套Bean也无需指定id属性。如下配置片段是一个嵌套Bean的示例:<bean id
Easter79 Easter79
2年前
Spring之Spel表达式
正常业务场景一般不用这个技术,但需要知道有这么个东西支持Spring。记忆力不好,抄了些套路代码便于以后用到。packagecom.paic.phssp.springtest.spel;importjava.util.Arrays;importjava.util.List;public
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k