一文讲解Java中的AOP的使用场景

AOP的使用场景很多,比如说日志记录、事务管理、权限控制、性能监控等

假如我们在一个项目中主要利用AOP来打印接口的入参和出参日志、执行时间,方便后期bug溯源和性能调优

第一步,自定义注解作为切点

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface MdcDot {
    String bizCode() default "";
}

第二步,配置 AOP 切面:

  • @Aspect:标识切面
  • @Pointcut:设置切点,这里以自定义注解为切点
  • @Around:环绕切点,打印方法签名和执行时间

在这里插入图片描述
第三步,在使用的地方加上自定义注解
在这里插入图片描述
第四步,当接口被调用时,就可以看到对应的执行日志。

2024-06-16 11:06:13,008 [http-nio-8080-exec-3] INFO |00000000.1686884772947.468581113|101|c.g.p.forum.core.mdc.MdcAspect.handle(MdcAspect.java:47) - 方法执行耗时: com.github.paicoding.forum.web.front.article.rest.ArticleRestController#recommend = 47

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值