Spring SPEL表達(dá)式

SpEL 是一種擴(kuò)展語(yǔ)言,支持在運(yùn)行時(shí)查詢和操作對(duì)象圖的功能。

有很多可用的表達(dá)語(yǔ)言,例如JSP EL, OGNL,MVEL和JBoss EL。 SpEL提供了一些其他功能,例如方法調(diào)用和字符串模板功能。

SpEL API

SpEL API提供了許多接口和類。它們?nèi)缦?

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示例。在這里,我們假設(shè)所有示例都已寫在main()方法內(nèi)。

將concat()方法與String配合使用

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

將字符串轉(zhuǎn)換為字節(jié)數(shù)組

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]+" ");
}

將字符串轉(zhuǎn)換為字節(jié)后獲取長(zhǎng)度

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

將字符串內(nèi)容轉(zhuǎn)換為大寫字母

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());
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清