如何创建自定义java注释以记录方法参数
我正在编写JavaEE应用程序,我想使用并创建自定义注释,当调用注释方法时,该注释将记录数据。我想做的就是,当调用带注释的方法时,代码迭代所有传递的方法参数,并写入标准输出参数键和值 例如:如何创建自定义java注释以记录方法参数,java,annotations,Java,Annotations,我正在编写JavaEE应用程序,我想使用并创建自定义注释,当调用注释方法时,该注释将记录数据。我想做的就是,当调用带注释的方法时,代码迭代所有传递的方法参数,并写入标准输出参数键和值 例如: public class Test { @LogMethodData public int sum(int first, int second) { return first + second; } } 我想实现的是,当一个自定义metod将被@LogMethod
public class Test {
@LogMethodData
public int sum(int first, int second) {
return first + second;
}
}
我想实现的是,当一个自定义metod将被@LogMethodData注释时,后面的代码将负责将传递的方法参数记录到标准输出(如果参数第一个包含值4,参数第二个包含值5,则类似于“方法数据:第一个-4,第二个-5”),独立于传递给方法的参数数
如果有人能帮我,我会非常高兴,因为我已经在寻找解决方案,但我没有发现任何有用的东西。最后,我对这些东西不熟悉
问候,,
Dahakka无需定义自己的注释,您可以使用EE容器中的
@拦截器
注释
在拦截器中,您将获得一个包含参数的上下文
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;
}
}
}
另一个例子:或者你可以。。。你知道的。。。google annotation教程,而不是搜索已经为您的问题制定的解决方案。可能重复Hi,我已经搜索了一段时间,但没有发现任何有用的内容。我知道,我需要定义接口,但我不知道将业务逻辑放在哪里,业务逻辑将获取方法参数并将它们打印到标准输出。记录方法输入被称为交叉关注点,因为每个方法的运行代码看起来都一样。面向方面编程(AOP)就是为了这个原因而设计的。您应该考虑使用ApStCJ或任何其他AOP解决方案。因此,你不需要注释,它不是重复的费边。我以前读过这个线程,但我不想调用一些特殊的类或方法来记录数据。那个么,当可以调用静态方法时,注释将是无意义的
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;
}
}
}