Spring文档苦读【7】【Spring Expression Language(SpEL)】

简介

Spring Expression Language(Spring表达式语言),用来解析java语言中的相关并获得反馈。

下面就摘录官方示例来简单描述一下。也作一下标记,方便以后查阅。

示例

示例1

1 ExpressionParser parser = new SpelExpressionParser();
2 Expression exp = parser.parseExpression("‘Hello World‘");
3 String message = (String) exp.getValue();

变量message的值为:Hello World

示例2

1 ExpressionParser parser = new SpelExpressionParser();
2 Expression exp = parser.parseExpression("‘Hello World‘.concat(‘!‘)");
3 String message = (String) exp.getValue();

变量message的值为:Hello World!

示例3

1 ExpressionParser parser = new SpelExpressionParser();
2
3 // invokes ‘getBytes()‘
4 Expression exp = parser.parseExpression("‘Hello World‘.bytes");
5 byte[] bytes = (byte[]) exp.getValue();

示例4

1 ExpressionParser parser = new SpelExpressionParser();
2
3 // invokes ‘getBytes().length‘
4 Expression exp = parser.parseExpression("‘Hello World‘.bytes.length");
5 int length = (Integer) exp.getValue();

示例5

1 ExpressionParser parser = new SpelExpressionParser();
2 Expression exp = parser.parseExpression("new String(‘hello world‘).toUpperCase()");
3 String message = exp.getValue(String.class);

示例6

 1 // Create and set a calendar
 2 GregorianCalendar c = new GregorianCalendar();
 3 c.set(1856, 7, 9);
 4
 5 // The constructor arguments are name, birthday, and nationality.
 6 Inventor tesla = new Inventor("Nikola Tesla", c.getTime(), "Serbian");
 7
 8 ExpressionParser parser = new SpelExpressionParser();
 9 Expression exp = parser.parseExpression("name");
10
11 EvaluationContext context = new StandardEvaluationContext(tesla);
12 String name = (String) exp.getValue(context);

获取对象tesla的属性name的值。

示例7

 1 / Create and set a calendar
 2 GregorianCalendar c = new GregorianCalendar();
 3 c.set(1856, 7, 9);
 4
 5 // The constructor arguments are name, birthday, and nationality.
 6 Inventor tesla = new Inventor("Nikola Tesla", c.getTime(), "Serbian");
 7
 8 ExpressionParser parser = new SpelExpressionParser();
 9 Expression exp = parser.parseExpression("name == ‘Nikola Tesla‘");
10 boolean result = exp.getValue(context, Boolean.class); // evaluates to true

变量result为判断对象tesla的属性name是否和字符串‘Nikola Tesla‘相同。

时间: 2024-10-12 03:43:22

Spring文档苦读【7】【Spring Expression Language(SpEL)】的相关文章

Spring文档苦读【6】【纯注解方式配置MVC】

前言 Spring官方文档提供纯注解方式进行配置,无需XML,只需要相关的JAVA类即可实现项目的注册以及容器的管理. 注解XML <web-app> <!-- Configure ContextLoaderListener to use AnnotationConfigWebApplicationContext instead of the default XmlWebApplicationContext --> <context-param> <param-n

Spring文档苦读【3】【短生命周期的Bean注入长生命周期的Bean】

前言 在Spring 中,定义Bean的范围有多种.一种是经常用的Singleton,还有prototype,request,session,globalSession,application,websocket等等,但是我们如何把短生命周期的bean注入到我们长生命周期的bean中呢?例如,我如何把scope为session的bean注入到singleton的bean中呢? 有的同学可能会这样做 1 <!-- 短生命周期 --> 2 <bean id="userPrefere

Spring文档苦读【5】【&lt;context:annotation-config/&gt;】

如何配置Spring注解 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springfram

Spring文档阅读之Resources

Resources Spring定义用于处理位于classpath和相对路径下的资源的一系列接口方法. The Resource Interface Built-in Resource Implementations The ResourceLoader The ResourceLoaderAware interface Resources as Dependencies 1.1. The Resource Interface Spring的Resource接口用于提供抽象方法操作项目中的资源,

Spring文档整理

一: 1.进入学习的地方 二:进入第一个地方 1.Building a RESTful Web Service 2.第一个内容 what you will build: 讲述了实现的目标是: 1.通过仿真连接,可以返回json 2,通过改变连接的询问字符串,改变参数,返回被覆盖的字段. 3.第二个内容 what you need 讲述完成这些功能需要的软件支持: 4.第三个内容 how to complete the guide 可以使用github下载代码 #进入新建的目录 #进入链接,进行下

Spring框架文档与API(4.3.6版本)

http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/ Table of Contents I. Overview of Spring Framework 1. Getting Started with Spring 2. Introduction to the Spring Framework 2.1. Dependency Injection and Inversion of Contr

关于Spring配置文件xml文档的schema约束

最开始使用spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. [html] view plain copy print? <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:m

Spring Data MongoDB 四:基本文档修改(update)(一)

Spring Data MongoDB 三:基本文档查询(Query.BasicQuery)(一) 学习MongoDB 二:MongoDB添加.删除.修改 一.简介 Spring Data  MongoDB提供了org.springframework.data.mongodb.core.MongoTemplate对MongoDB的update的操作,可以对在存储数据时是以键-值对的集合键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档进行修改,我们今天介绍对基本文档的修改的方法.参数进

Spring中xml文档的schema约束

最开始使用Spring框架的时候,对于其配置文件xml,只是网上得知其使用方法,而不明其意.最近想着寻根问底的探究一下.以下是本文主要内容: 1.配置文件示例. <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:mvc="http://www.springfram