1.加入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
2.切面文件
@Aspect
@Component
public class DemoAspect {
private static final Logger log= LoggerFactory.getLogger(DemoAspect.class);
//@Pointcut("execution(public * com.jackie.springbootdemo.controller.HelloController.test*(..))")
@Pointcut("execution(public * *test(..))")
public void addAdvice(){
log.info("============ADD Advices============");
}
@Before("addAdvice()")
public void before(JoinPoint joinPoint){
Object[] args=joinPoint.getArgs();
// HttpServletRequest requests=(HttpServletRequest) args[0];
log.info("============打印日志开始============");
if (args.length>0){
log.info(args[0].toString());
}
// log.info("URL: " + args[0]);
log.info("============打印日志结束============");
}
}
3.对 test结尾的方法切面
@RestController
@Slf4j
public class HealthCheckController extends BaseController {
@GetMapping(value = "/hs")
public GenericResponse<String> hstest() {
GenericResponse<String> resp = new GenericResponse<>();
resp.setStatus(ResponseConstants.STATUS_SUCCESS);
resp.setMessage("OK");
return resp;
}
@GetMapping(value = "/hs/test")
public GenericResponse<String> test(String a) {
GenericResponse<String> resp = new GenericResponse<>();
log.info("Input:"+a);
resp.setStatus(ResponseConstants.STATUS_SUCCESS);
resp.setMessage("OK");
return resp;
}
}
4.调用效果

网友评论