1, Add dependency.

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>

  

2. Test Cases

import org.junit.Test;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.SpelCompilerMode;
import org.springframework.expression.spel.SpelParserConfiguration;
import org.springframework.expression.spel.standard.SpelExpression;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext; public class SpringELTest { @Test
public void testEvaluationContext() { Account account = new Account("Deniro");
ExpressionParser parser = new SpelExpressionParser();
EvaluationContext context = new StandardEvaluationContext(account);
Expression expression = parser.parseExpression("name");
String result = expression.getValue(context, String.class);
System.out.println("result:" + result); } @Test
public void test1() {
ExpressionParser parser = new SpelExpressionParser();
Expression expression = parser.parseExpression("'SpEL'.concat(' thinking')");
String result = (String) expression.getValue();
System.out.println("result:" + result);
} @Test
public void test2() {
ExpressionParser parser = new SpelExpressionParser();
Expression expression = parser.parseExpression("6+2");
Integer result = (Integer) expression.getValue();
System.out.println("result:" + result);
} @Test
public void test3() { // Spel 解析配置器
SpelParserConfiguration configuration = new SpelParserConfiguration(SpelCompilerMode.IMMEDIATE, SpringELTest.class.getClassLoader()); // 解析器
SpelExpressionParser parser = new SpelExpressionParser(configuration); // 上下文
EvaluationContext context = new StandardEvaluationContext(new Account("Deniro")); // 表达式
String expression = "getName()"; // 解析表达式
SpelExpression spelExpression = parser.parseRaw(expression); System.out.println(spelExpression.getValue(context));
} }
public class Account {

    private String name;

    public Account(String name) {
this.name = name;
} public String getName() {
return name;
}
}

 

import java.util.ArrayList;
import java.util.List;

import org.springframework.expression.EvaluationException;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.ParseException;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;

public class GenericConvertExample {
public List<Integer> nums = new ArrayList<Integer>();

public static void main(String[] args) {

GenericConvertExample example = new GenericConvertExample();
example.nums.add(1);

//创建表达式上下文
StandardEvaluationContext context = new StandardEvaluationContext(example);
//创建表达式解析器
ExpressionParser parser = new SpelExpressionParser();

String expression = "nums[0]";
//自动将 2 转换为 Integer 类型
parser.parseExpression(expression).setValue(context, 2);
System.out.println("nums:" + example.nums);

//抛出 ConverterNotFoundException
try {
parser.parseExpression(expression).setValue(context, true);
} catch (EvaluationException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}

}
}

 

最新文章

  1. H3 BPM:为石化企业提供一个不一样的全停大修平台
  2. Linux程序包管理之rpm
  3. MyBatis的resultMap
  4. 实时显示内容(Thread+Handler)
  5. 【Java安装】Centos6.8 安装Java1.6
  6. sublime text编辑器删除已安装的插件
  7. Eclipse 下如何删除一个项目的 SVN 信息
  8. ERP 及相关名词的含义
  9. Android(java)学习笔记197:常用的对话框
  10. (转)Android创建桌面快捷方式两种方法
  11. 关于 rand() 函数返回值的值域的疑问
  12. Bootstrap &amp; 响应式
  13. 用secureCRT连接虚拟机中的Ubuntu系统,出现“远程主机拒绝连接”错误
  14. redhat 6.5 安装和配置zabbix客户端
  15. 通过SD卡来安装Linux系统
  16. Python爬虫-什么是爬虫?
  17. android学习-LocationManager(一)-
  18. ZT 链表逆序
  19. 【Asp.net入门3-01】使用jQuery-创建示例项目
  20. VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)

热门文章

  1. JGit----将 Git 嵌入你的应用
  2. js 实现 多层级对象合并
  3. 主题: 002.04 Tkinter 星空大战
  4. (全国多校重现赛一)B-Ch's gifts
  5. 什么是RESTful?RESTfule风格
  6. numpy的基本API(三)——索引
  7. Zabbix与ELK整合实现对日志数据的实时监控
  8. Mybatis 报错 java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.lang.Inte
  9. Python3 并发编程2
  10. Java内存模型之原子性问题