Spring SpEL - 表示式介面



ExpressionParser 是 Spring SpEL 的主要介面,它有助於將表示式字串解析為已編譯的表示式。這些已編譯的表示式可以進行求值,並支援解析模板以及標準表示式字串。

語法

以下是如何建立一個 ExpressionParser 並使用其物件獲取值的示例。

ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("'Welcome to Tutorialspoint'");
String message = (String) exp.getValue();

它應該列印如下結果:

Welcome to Tutorialspoint
  • ExpressionParser - 負責解析表示式字串的介面。

  • Expression - 負責求值表示式字串的介面。

  • 異常 - ParseException 和 EvaluationException 可能會在 parseExpression 和 getValue 方法呼叫期間丟擲。

SpEL 支援呼叫方法、呼叫建構函式和訪問屬性。以下示例顯示了各種用例。

示例

以下示例顯示了一個名為 MainApp 的類。

讓我們更新在Spring SpEL - 建立專案章節中建立的專案。我們新增以下檔案:

  • MainApp.java - 執行和測試的主要應用程式。

以下是MainApp.java檔案的內容:

package com.tutorialspoint;

import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;

public class MainApp {
   public static void main(String[] args) {
      ExpressionParser parser = new SpelExpressionParser();

      // parse a plain text
      Expression exp = parser.parseExpression("'Welcome to tutorialspoint'");
      String message = (String) exp.getValue();
      System.out.println(message);

      // invoke a method
      exp = parser.parseExpression("'Welcome to tutorialspoint'.concat('!')");
      message = (String) exp.getValue();
      System.out.println(message);

      // get a property
      exp = parser.parseExpression("'Welcome to tutorialspoint'.bytes");
      byte[] bytes = (byte[]) exp.getValue();
      System.out.println(bytes.length);

      // get nested properties
      exp = parser.parseExpression("'Welcome to tutorialspoint'.bytes.length");
      int length = (Integer) exp.getValue();
      System.out.println(length);

      //Calling constructor
      exp = parser.parseExpression("new String('Welcome to tutorialspoint').toUpperCase()");
      message = (String) exp.getValue();
      System.out.println(message);	   
   }
}

輸出

Welcome to tutorialspoint
Welcome to tutorialspoint!
25
25
WELCOME TO TUTORIALSPOINT
廣告
© . All rights reserved.