English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

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()メソッドとStringを組み合わせて使用します

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());