截取MVEL表达式中各个函数的输入输出

Intercept input and output of each function in an MVEL expression

我对 MVEL 很陌生。我想要实现的是记录表达式中每个函数的输入和输出。

例如,具有以下表达式

h.function1('value1') != h.function2('value2') 

我要记录的是 function1function2 的输入和输出值。我读到了 Interceptors。如果我理解正确,要添加拦截器,我需要将上面的表达式重写如下。

@Intercept h.function1('value1') != @Intercept h.function2('value2')

但是,我不能强迫我的用户添加 @Intercept 注释。

完成此任务的最佳方法是什么?我必须恢复 Spring AOP 吗? :(

这不是@Intercept 而是您在地图中放置的拦截名称。波纹管是@test注解。请在此处查看详细信息 https://github.com/mvel/mvel/blob/master/src/test/java/org/mvel2/tests/core/CoreConfidenceTests.java

interceptors.put("test",
        testInterceptor);

 executeExpression(compileExpression("@test System.out.println('MIDDLE');",
        null,
        interceptors));