Spring -> SpEL语言

1. SpEL语言

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

2. SpEL核心接口

SpEL的相关内容位于Spring框架的expression模块

  • spring-context 包含有 spring-expression。若已经引入 spring-context,则无需引入 spring-expression。
2.1 ExpressionParse接口
  • 解析表达式字符串(一个用单引号标注或者用转义的双引号标注的字符串)
2.2 EvaluationContext接口
  • 提供属性、方法、字段解析器以及类型转换器。

3. SpEL基础表达式

3.1 文本字符解析
  • 文本表达式支持字符串,日期,字符,布尔类型以及null。
  • 字符串需要使用单引号或者反斜杠+双引号包含起来
3.2 对象属性解析
  • EvaluationContext接口通过反射来操作对象
String nation=parser.parseExpression("placeOfBirth.nation").getValue(context,String.class);
String nation=parser.parseExpression("placeOfBirth.nation").getValue(user,String.class);

两种方式得到的结果相同,但是不使用context就需要每次对user对象进行反射,效率低下。而context可以通过缓存来提高效率。

3.3 数组和集合解析
  • SpEL支持数组,集合类型(Map、List)的解析。
    • 数组:支持标准Java语言创建数组的方法
    • List:支持大括号括起来的内容,数据项之间用逗号隔开
    • Map:支持{key : XXX , value : XXX}
3.4 方法解析
  • SpEL中方法调用
    • 支持Java可以访问的方法(对象方法,静态方法(通过SpEL提供的T类型操作符 -> T(包名)方法名,直接调用java.lang.Math的静态方法))
    • 支持可变方法参数
    • 支持调用 String类型的所有可访问的方法。

4. Spring中使用SpEL

4.1 XML配置
  • Spring中内置了 systemProperties 和 systemEnvironment 两个Bean
    • systemProperties:获取系统属性变量值
      • System.getProperties();
    • systemEnvironment:获取系统环境变量值
      • System.getenv();
4.2 注解配置
  • @Value注解可以标注在类的属性、方法、构造函数上
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值