分布式04-Spring Cloud Zuul 二 Zuul拦截器

隐身守侯 提交于 2020-04-07 20:49:58

Spring Cloud 整合Zuul见上一篇

https://my.oschina.net/u/4039389/blog/3221637

1.拦截器类型

/**
 * “pre” 预过滤器 - 在路由分发一个请求之前调用。
 * “route” 路由过滤器 - 用于路由请求时调用。
 * “post” 后过滤器 - 在路由分发一个请求后调用。
 * “error” 错误过滤器 - 在处理请求时发生错误时调用
 */

2.编写拦截器

 

@Component
public class PreFilter extends ZuulFilter {
    @Override
    public String filterType() {
        return "pre";
    }

    @Override
    public int filterOrder() {
        return 0;
    }

    @Override
    public boolean shouldFilter() {
        return true;
    }

    @Override
    public Object run() throws ZuulException {
        RequestContext ctx = RequestContext.getCurrentContext();
        HttpServletRequest request = ctx.getRequest();

        System.out.println(
                "Pre Filter: Request Method : " + request.getMethod() + " " +
                        "Request URL : " + request.getRequestURL().toString());

        return null;
    }
}

我们分别写4个类型的拦截器,分部在控制台打印出拦截器的顺序。(代码是一样的,只是filterType return 的值不一样,分别是拦截4个类型 )

可以看到控制台的打印顺序 pre >route>error(只有异常的情况才会出现)>post

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!