Spring Bean Expression Language(EL)
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();
}
}
}
最新文章
- H3 BPM:为石化企业提供一个不一样的全停大修平台
- Linux程序包管理之rpm
- MyBatis的resultMap
- 实时显示内容(Thread+Handler)
- 【Java安装】Centos6.8 安装Java1.6
- sublime text编辑器删除已安装的插件
- Eclipse 下如何删除一个项目的 SVN 信息
- ERP 及相关名词的含义
- Android(java)学习笔记197:常用的对话框
- (转)Android创建桌面快捷方式两种方法
- 关于 rand() 函数返回值的值域的疑问
- Bootstrap &; 响应式
- 用secureCRT连接虚拟机中的Ubuntu系统,出现“远程主机拒绝连接”错误
- redhat 6.5 安装和配置zabbix客户端
- 通过SD卡来安装Linux系统
- Python爬虫-什么是爬虫?
- android学习-LocationManager(一)-
- ZT 链表逆序
- 【Asp.net入门3-01】使用jQuery-创建示例项目
- VS2010/MFC编程入门之六(对话框:创建对话框模板和修改对话框属性)
热门文章
- JGit----将 Git 嵌入你的应用
- js 实现 多层级对象合并
- 主题: 002.04 Tkinter 星空大战
- (全国多校重现赛一)B-Ch's gifts
- 什么是RESTful?RESTfule风格
- numpy的基本API(三)——索引
- Zabbix与ELK整合实现对日志数据的实时监控
- Mybatis 报错 java.lang.IllegalArgumentException: Result Maps collection does not contain value for java.lang.Inte
- Python3 并发编程2
- Java内存模型之原子性问题