首页 / JAVA / 使用注释的Java代码检测
使用注释的Java代码检测
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用注释的Java代码检测,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1690字,纯文字阅读大概需要3分钟。
内容图文
![使用注释的Java代码检测](/upload/InfoBanner/zyjiaocheng/719/6e89d14e233b4b59aa3720034d79937a.jpg)
我有一个包含大量代码的巨大java项目.让我们假设它看起来像:
fn1(int arg1){...}
fn2(int arg1,int arg2){...}
fn23(){...}
...
fn134(){...}
我想使用注释记录每次函数调用:
@logme("arg1")
fn1(int arg1){...}
@logme("all args")
fn2(int arg1,int arg2){...}
fn23(){...}
...
fn134(){...}
并希望看到
fn1(arg1=223)
fn1(arg1=213,arg2=46)
在我的日志文件中
你会这么善意地向我推荐一些工具吗?
史蒂夫
解决方法:
您可以使用AspectJ&任何日志框架来处理这个要求,
所以你需要做以下事情:
1-创建你的注释,你可以根据自己的意愿获取参数,甚至可以获取一些未定义数量的参数,并像’arg1 = q,arg2 = w,arg3 = e’一样处理它们
2-在这样的新注释上创建一个带切点的方面
@Pointcut(value = "@annotation(loggableActivity)", argNames = "loggableActivity")
注意argNames在这里用来将注释本身发送给处理程序方法,所以你可以从它获取参数,如’arg1 = q,arg2 = w,arg3 = e’,并处理它们
3-在进行方法调用之前,记录你想要的内容,你可以从你的参数中获得几乎所有需要的信息,
注释代码如下所示:
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface LoggableActivity {
String value();
String args() default "";
}
切点代码看起来像:
@Aspect
public class ActivityLogger {
private static final Logger logger = LoggerFactory.getLogger("activity");
@Pointcut(value = "@annotation(loggableActivity)", argNames = "loggableActivity")
public void loggableUserActivity(LoggableActivity loggableActivity) {
}
@Around("loggableUserActivity(loggableActivity)")
public Object doLoggingUserActivity(ProceedingJoinPoint pjp,
LoggableActivity loggableActivity) throws Throwable {}
然后在doLoggingUserActivity里面你可以使用像
pjp.proceed(); proceed method call
pjp.getArgs(); gets method arguments
loggableActivity.args(); gets annotation argument as String
然后使用记录器记录它们
内容总结
以上是互联网集市为您收集整理的使用注释的Java代码检测全部内容,希望文章能够帮你解决使用注释的Java代码检测所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。