# 网关拦截器 从3.1.0开始新增了网关拦截器,使用该拦截器可做一些数据统计,日志记录等工作。 使用方法如下: - 在sop-gateway工程下新增一个类,实现`RouteInterceptor`接口,实现接口中的方法。别忘了加`@Component` ```java @Component public class MyRouteInterceptor implements RouteInterceptor { @Override public void preRoute(RouteInterceptorContext context) { ApiParam apiParam = context.getApiParam(); System.out.println("请求接口:" + apiParam.fetchNameVersion()); } @Override public void afterRoute(RouteInterceptorContext context) { System.out.println("请求成功,微服务返回结果:" + context.getServiceResult()); } @Override public int getOrder() { return 0; } } ``` RouteInterceptor接口方法说明: - `public void preRoute(RouteInterceptorContext context)` 路由转发前执行,在签名验证通过之后会立即执行这个方法。 - `public void afterRoute(RouteInterceptorContext context)` 路由转发完成后,即拿到微服务返回结果后执行这个方法 - `public int getOrder()` 指定拦截执行顺序,数字小的优先执行,建议从0开始。 - `default boolean match(RouteInterceptorContext context)` 是否匹配,返回true执行拦截器,默认true RouteInterceptorContext参数存放了各类参数信息。 参考类: - `com.gitee.sop.gatewaycommon.interceptor.RouteInterceptor` 拦截器接口 - `com.gitee.sop.gatewaycommon.interceptor.RouteInterceptorContext` 拦截器上下文 - `com.gitee.sop.gatewaycommon.interceptor.MonitorRouteInterceptor` 默认实现的拦截器,用于收集监控数据