Spring 表达式语言(SpEL)教程

SpEL 是一种支持在运行时查询和操作对象图的表达式语言。

有许多表达式语言可用,如 JSP EL、OGNL、MVEL 和 JBoss EL。SpEL 提供了一些额外的功能,如方法调用和字符串模板功能。

SpEL API

SpEL API 提供了许多接口和类。它们如下所示:

  • Expression 接口
  • SpelExpression 类
  • ExpressionParser 接口
  • SpelExpressionParser 类
  • EvaluationContext 接口
  • StandardEvaluationContext 类

Hello SPEL 示例

import org.springframework.expression.Expression;  
import org.springframework.expression.ExpressionParser;  
import org.springframework.expression.spel.standard.SpelExpressionParser;  
  
public class Test {  
public static void main(String[] args) {  
ExpressionParser parser = new SpelExpressionParser();  
  
Expression exp = parser.parseExpression("'Hello SPEL'");  
String message = (String) exp.getValue();  
System.out.println(message);  
//OR  
//System.out.println(parser.parseExpression("'Hello SPEL'").getValue());  
}  
}  

其他 SpEL 示例

让我们看一些有用的 SpEL 示例。在这里,我们假设所有的示例都是写在 main() 方法中。

使用 concat() 方法拼接字符串

ExpressionParser parser = new SpelExpressionParser();  
Expression exp = parser.parseExpression("'Welcome SPEL'.concat('!')");  
String message = (String) exp.getValue();  
System.out.println(message);  

将字符串转换为字节数组

Expression exp = parser.parseExpression("'Hello World'.bytes");  
byte[] bytes = (byte[]) exp.getValue();  
for(int i=0;i<bytes.length;i++){  
    System.out.print(bytes[i]+" ");  
}  

在将字符串转换为字节数组后获取长度

Expression exp = parser.parseExpression("'Hello World'.bytes.length");  
int length = (Integer) exp.getValue();  
System.out.println(length);  

将字符串内容转换为大写字母

Expression exp = parser.parseExpression("new String('hello world').toUpperCase()");  
String message = exp.getValue(String.class);  
System.out.println(message);  
//OR  
System.out.println(parser.parseExpression("'hello world'.toUpperCase()").getValue()); 

标签: spring, Spring教程, Spring技术, Spring语言学习, Spring学习教程, Spring下载, Spring框架, Spring框架入门, Spring框架教程, Spring框架高级教程, Spring面试题, Spring笔试题, Spring编程思想