top / index / prev / next / target / source

2020-05-16 diary: [Spring][Java] SpEL を自前プログラムに組み込んで利用する方法

いがぴょんの日記 日記形式でつづる いがぴょんコラム ウェブページです。

[Spring][Java] SpEL を自前プログラムに組み込んで利用する方法

ちょっとしたプログラミング言語を自前プログラムに組み込みたい時に、SpEL を自前プログラムに組み込んで利用するのが良い方法の場合があります。

        StandardEvaluationContext context = new StandardEvaluationContext();
        try {
            // 標準評価に関数を追加.
            context.registerFunction("Abcdefg", SimpleSpelSample01.class.getDeclaredMethod( //
                    "abcdefg", //
                    new Class[] { Integer.class, Integer.class }));
        } catch (NoSuchMethodException | SecurityException e) {
            throw new IllegalArgumentException("Unexpected syntax error:" + e.toString());
        }

        ExpressionParser parser = new SpelExpressionParser();
        try {
            Expression exp = parser.parseExpression(inputString);
            Integer result = exp.getValue(context, Integer.class);
            System.err.println("result: " + result);
        } catch (SpelParseException e) {
            throw new IllegalArgumentException("与えられたSpEL式が不正です。[" + inputString + "]:" + e.toString());
        }
    }

完全なソースコードは github に載ってます

Last modified: $Date: 2020-05-18 $

登場キーワード


この日記について