欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring boot 使用AOP记录controller日志

程序员文章站 2024-03-24 08:20:16
...

希望在controller执行完成后,记录一下这个接口的调用信息
如下实现请求到如下接口后,会执行SubscribeAop.java中的 recordLog()方法
如果要实现在进入Controller.subscribe()之前执行某个方法,可以使用@ModelAttribute注解,使用方法自行google

  • Controller.java
    @GetMapping("/")
    public String subscribe(String accessToken, HttpServletRequest request) {
        return "SUCCESS";
    }
  • SubscribeAop.java
@Aspect
@Component
public class SubscribeAop {
    // 对以下com.web.controller.Controller类中的所有方法进行切入
    @Pointcut("execution(public * com.web.controller.Controller.*(..))")
    private void method(){
    }

    // @After("method() && args(jsonData ,request)")
    // public void recordLog(String jsonData ,HttpServletRequest request){
    @After("method()")  // 使用上面定义的切入点
    public void recordLog(){
       // 这里记录日志 , 这里处理的内容会切入controller中
    }
}
  • pom.xml
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
  • application.properties
spring.aop.auto=true

参考: