java - 截取MVEL表达式中每个函数的输入和输出

标签 java interceptor mvel

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

例如,有以下表达式

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

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

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

但是,我无法强制我的用户添加 @Intercept 注释。

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

最佳答案

这不是@Intercept,而是您在 map 中放入的拦截的名称。下面是@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));

关于java - 截取MVEL表达式中每个函数的输入和输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41874550/

相关文章:

java - 在 android 中暂停一个类并开始另一个类,反之亦然

Java:我有一大串 html,需要提取 href ="..."文本

java - UTGARD opc客户端: Read multiple items repeatedly

java - Spring ClientInterceptor 在响应中显示空的 SOAP header

java - 使用 mvel 检查列表中是否存在元素

java - 为什么服务会在主进程停止时销毁?

java - 未使用拦截器绑定(bind)调用拦截器方法

java.lang.IllegalStateException : Cannot call getInputStream() after getReader() has already been called for the current request

java - 罗马数字的字符串替换

java - 在 Java 运行时评估基于 Json 的规则