休息控制器的弹簧日志

Bun*_*eng 5 java spring log4j spring-mvc log4j2

我有一个包含许多方法的休息控制器

@RestController
@RequestMapping("v1/test")
public class TestRestController {

   ...... 100 methods (GET, POST, PATCH, etc)
}
Run Code Online (Sandbox Code Playgroud)

我如何知道正在访问哪个方法而不print在每个方法中使用?
有没有办法做到这一点?

Anu*_*dha 1

使用 Spring 进行面向方面编程:

import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;    

@Aspect
public class SpringAspect {

    private static final Logger LOG = LoggerFactory.getLogger(SpringAspect.class);

    @Before("execution(* sample.package.path.TestRestController.*(..))")
    public void executedMethodsLogger(JoinPoint joinPoint) {
        LOG.info("[ Executed method {} ]", joinPoint.toString());
    }

}
Run Code Online (Sandbox Code Playgroud)