📜  Spring表达语言(SPEL)教程| SPEL示例

📅  最后修改于: 2020-12-04 08:21:15             🧑  作者: Mango

Spring表达语言(SPEL)教程

SpEL是一种扩展语言,支持在运行时查询和操纵对象图的功能。

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

SpEL API

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

  • 表达接口
  • SpelExpression类
  • ExpressionParser接口
  • SpelExpressionParser类
  • EvaluationContext接口
  • StandardEvaluationContext类

您好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);

将String转换为字节数组

Expression exp = parser.parseExpression("'Hello World'.bytes");
byte[] bytes = (byte[]) exp.getValue();
for(int i=0;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());