aop实现日志记录通过自定义注解方式

复制代码
切面类切入点引入注解
@Aspect
@Component
@Pointcut("@annotation(com.test.aop.MyLog)")//切入点通过注解实现 private void pointcut(){}
@Around("pt()")环绕引用切入点
public Object Log(ProceedingJoinPoint joinPoint) throws Throwable {
//1. 获取 目标对象的类名 .
String className = joinPoint.getTarget().getClass().getName();
log.info("目标对象的类名:{}", className);

//2. 获取 目标方法的方法名 .
String methodName = joinPoint.getSignature().getName();
log.info("目标方法的方法名: {}",methodName);

//3. 获取 目标方法运行时传入的参数 .
Object[] args = joinPoint.getArgs();
log.info("目标方法运行时传入的参数: {}", Arrays.toString(args));

//4. 放行 目标方法执行 .
Object result = joinPoint.proceed();

//5. 获取 目标方法运行的返回值 .
log.info("目标方法运行的返回值: {}",result);

log.info("around after ...");
return result;
}
注解类
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD) //指定实现的类型及运行时机
public @interface MyLog {
}

在使用的方法上加自定义注解@MyLog
 


复制代码

 

posted @   myWang  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示