代码主要目的是controller方法进行日志记录,记录请求的内容、调用的方法、参数以及响应的内容和请求处理的时间。
1.介绍
AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架中的一个重要特性,允许开发者定义跨多个对象的横切关注点。
在Spring Boot中,AOP的使用几个步骤:
- 定义Aspect:Aspect是包含一些advice(通知)的类。通知是实际执行的代码,它可以是一个方法或者一个lambda表达式。在Aspect中,你可以定义前置通知(Before)、后置通知(After)、返回通知(AfterReturning)、异常通知(AfterThrowing)等。
- 配置AspectJ自动代理:
- 定义Pointcut表达式:Pointcut表达式定义了通知何时执行。你可以通过定义方法签名、类名、包名等来定义Pointcut表达式。
讯享网
2.代码解释:
讯享网
3.整体代码介绍
用于记录请求和响应的日志。
- 定义Aspect: 是一个Aspect,它包含了前置通知(Before)、后置通知(AfterReturning)功能。
- Pointcut定义:通过 注解定义了一个切入点表达式,用于匹配和包下的所有public controller方法。
- 前置通知(Before):
- :在匹配到切入点的方法执行之前,执行前置通知的方法。
- 在 方法中,首先获取了当前的请求信息,并记录了请求的URL、调用的类和方法以及请求参数。
- 同时,还记录了当前的时间戳,用于后续计算请求处理时间。
- 后置通知(AfterReturning):

- :在匹配到切入点的方法执行之后且在返回结果之前,执行后置通知的方法。
- 在 方法中,首先将返回的结果转换为JSON字符串并记录下来。
- 计算并记录了请求处理的时间。
- 最后清除了之前记录的起始时间。
- 日志记录:使用SLF4J的Logger来记录日志,记录了请求的URL、方法、参数以及响应的内容和请求处理的时间。
- 线程局部变量:使用 来存储起始时间,这样每个线程的起始时间都是独立的,不会互相干扰。
代码主要目的是对controller方法进行日志记录,记录请求的内容、调用的方法、参数以及响应的内容和请求处理的时间。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/178811.html