Spring教程-Spring 表达式语言(SpEL)教程
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());