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