如何创建自定义Java注释来记录方法参数

我正在撰写JavaEE应用程序,并且我想要使用和创建自定义注释,当注释方法被调用时它将记录数据。 我想要做的是,当调用带注释的方法时,代码遍历所有传递的方法参数并写入标准输出参数键和值。

一些例子:

public class Test {

    @LogMethodData
    public int sum(int first, int second) {
        return first + second;
    }
}

我想实现,当一个自定义metod将被@LogMethodData注释时,后面的代码会照顾并记录传递的方法参数到标准输出(类似于“Method data:first - 4,second - 5”,如果参数是first包含值4,参数second包含值5),与传递给方法的参数数量无关。

如果有人能帮助我,我会非常高兴,因为我一直在寻找解决方案,但是我没有找到有用的东西。 最后,我对这个事情并不熟悉。

问候,Dahakka


没有必要定义自己的注释,您可以使用EE容器中的@Interceptors注释,如此处所述。

@Interceptors(LoggingInterceptor.class)

在Interceptor中,你会得到一个包含你的参数的上下文

public class LoggingInterceptor {
    ...

    @AroundInvoke
    public Object modifyGreeting(InvocationContext ctx) throws Exception {
        ....
        Object[] parameters = ctx.getParameters();
        try {
            return ctx.proceed();
        } catch (Exception e) {
            logger.warning("Error calling ctx.proceed in modifyGreeting()");
            return null;
        }
    }
}

另一个例子:在这里

链接地址: http://www.djcxy.com/p/76663.html

上一篇: How to create custom java annotation to log method parameters

下一篇: How to set the focus of the inputText inside dataTable