Тестирование пружины el с ExpressionParser

Test Spring el с ExpressionParser

Язык выражений Spring (SpEL) поддерживает множество функций, и вы можете протестировать эти функции выражений с помощью специального интерфейса «ExpressionParser».

Вот два фрагмента кода, демонстрирующие основное использование Spring EL.

SpEL для оценки литерального строкового выражения.

ExpressionParser parser = new SpelExpressionParser();
Expression exp = parser.parseExpression("'put spel expression here'");
String msg = exp.getValue(String.class);

SpEL для оценки свойства бина - «item.name».

Item item = new Item("example", 100);
StandardEvaluationContext itemContext = new StandardEvaluationContext(item);

//display the value of item.name property
Expression exp = parser.parseExpression("name");
String msg = exp.getValue(itemContext, String.class);

Несколько примеров для тестирования SpEL. Коды и комментарии должны быть самоисследованными.

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

public class App {
    public static void main(String[] args) {

        ExpressionParser parser = new SpelExpressionParser();

        //literal expressions
        Expression exp = parser.parseExpression("'Hello World'");
        String msg1 = exp.getValue(String.class);
        System.out.println(msg1);

        //method invocation
        Expression exp2 = parser.parseExpression("'Hello World'.length()");
        int msg2 = (Integer) exp2.getValue();
        System.out.println(msg2);

        //Mathematical operators
        Expression exp3 = parser.parseExpression("100 * 2");
        int msg3 = (Integer) exp3.getValue();
        System.out.println(msg3);

        //create an item object
        Item item = new Item("example", 100);
        //test EL with item object
        StandardEvaluationContext itemContext = new StandardEvaluationContext(item);

        //display the value of item.name property
        Expression exp4 = parser.parseExpression("name");
        String msg4 = exp4.getValue(itemContext, String.class);
        System.out.println(msg4);

        //test if item.name == 'example'
        Expression exp5 = parser.parseExpression("name == 'example'");
        boolean msg5 = exp5.getValue(itemContext, Boolean.class);
        System.out.println(msg5);

    }
}
public class Item {

    private String name;

    private int qty;

    public Item(String name, int qty) {
        super();
        this.name = name;
        this.qty = qty;
    }

    //...
}

Выход

Hello World
11
200
example
true

Note
Эта статья демонстрирует несколько основных способов использования анализатора выражений Spring, и вам следует посетить этотofficial Spring expression documentation, чтобы найти сотни полезных примеров SpEL.

Скачать исходный код

Скачать -Spring3-EL-Parser-Example.zip (6 КБ)