Spring 中使用@Aspect 方法级切面拦截

本文介绍了一种利用Spring AOP实现方法调用前后日志记录的技术方案。通过定义自定义注解@MethodLogger,并结合切面处理类MethodLoggerAspect,可以自动在方法执行前后记录相关信息,包括方法名、参数和返回结果等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1:定义注解类
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MethodLogger {

}

欢迎微信扫小程序码进入共同学习成长

2.定义切面处理类

@Component
@Aspect
public class MethodLoggerAspect {
    @Around("@annotation(com.*.annotation.MethodLogger)")
    public Object doAround(ProceedingJoinPoint pjp) throws Throwable {
        Signature signature = pjp.getSignature();
        String methodName = signature.getName();
        UUID uuid = UUID.randomUUID();
        Object[] args = pjp.getArgs();
        String info = JSON.toJSONString(args);     
        //方法执行前处理
        Object obj = pjp.proceed();
        String resultStr = JSON.toJSONString(obj);
       //方法执行后处理
        return obj;
    }
}

 

3.方法使用切面拦截

@MethodLogger
public Object myMethod (long userId, String bizCode){
   return null;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值