AOP 实现日志打印

  1. 首先需要自定义注解@LogAnnotaion

     //type代表可以放在类上面  method表示可以放在方法上
     @Target({ElementType.METHOD})
     @Retention(RetentionPolicy.RUNTIME)
     @Documented
     public @interface LogAnnotaion {
         String module() default "";
     
         String operator() default "";
     }
    
  2. 定义切面

     @Component  //能够让spring找到他
     @Aspect //切面 定义了通知和切点的关系
     @Slf4j
     public class LogAspect {
     
         @Pointcut("@annotation(com.itheima.common.aop.LogAnnotaion)")//切点
         public void pt() {
         }
         //环绕通知
         @Around("pt()")
         public Object log(ProceedingJoinPoint joinPoint) throws Throwable {
             long beginTime = System.currentTimeMillis();
     
             Object result = joinPoint.proceed();
     
             long endTime = System.currentTimeMillis();
     
             recordLog(joinPoint, endTime - beginTime);
             return result;
         }
     
         private void recordLog(ProceedingJoinPoint joinPoint, long l) {
             System.out.println();
             log.info("执行方法"+joinPoint.getTarget().getClass().getName()  +"====执行时间:==="+ l);
         }
     
     
     }
    
  3. 在需要打印日志的方法上添加自定义注解

     @LogAnnotaion(module = "检查项", operator = "添加检查项")
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值