目的:全局监控接口请求情况
public class RequestInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
return HandlerInterceptor.super.preHandle(request, response, handler);
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
...
TrackUtil.report(info); // 通过工具类调用服务
}
}
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry interceptorRegistry) {
interceptorRegistry.addInterceptor(...); // 其他拦截器
interceptorRegistry.addInterceptor(new RequestInterceptor()); // 添加本拦截器
}
}
借助工具类
@Component
public class TrackUtil {
public static TrackUtil trackUtil; //声明对象
@Autowired //注入
TrackService trackService;
@PostConstruct //初始化
public void init() {
trackUtil = this;
trackUtil.trackService = this.trackService;
}
public static void report(Object info){
trackUtil.trackService.report(info);
}
}