程序员

SpringBoot配置ZuulFilter过滤器详解

2020-05-26  本文已影响0人  小吴不睡觉

Zuul大部分功能都是通过过滤器来实现的,Zuul中定义了四种过滤器类型,这些过滤器类型对应的生命周期:

PRE:这种过滤器在请求被路由调用之前调用。我们可利用这种过滤器实现身份验证、再集群中选择请求的微服务、记录调试信息等。

ROUTING:这种过滤器将请求路由到微服务。用于构建发送给微服务的请求,并使用Apache HttpClient或Netflix Ribbon构建和发送原始HTTP请求的位置。

POST:请求在路由到微服务之后执行。示例包括向响应添加标准HTTP标头、收集统计信息和指标、以及将响应从源传输到客户端。

ERROR:过滤器在其中一个阶段发生错误时执行。

image

新建拦截器,继承ZuulFilter并重写默认方法

public class TestFilter extends ZuulFilter {

    /**
     * 过滤器类型:pre、routing、post、error
     *
     * @return
     */
    @Override
    public String filterType() {
        return "pre";
    }

    /**
     * 通过int值来定义过滤器的执行顺序,数值越小优先级越高。
     *
     * @return
     */
    @Override
    public int filterOrder() {
        return 0;
    }

    /**
     * 通过boolean值判断该过滤器是否要执行,可以在此方法写入过滤逻辑,限定过滤器有效范围
     *
     * @return
     */
    @Override
    public boolean shouldFilter() {
        return false;
    }

    /**
     * 自定义过滤器逻辑
     *
     * @return
     */
    @Override
    public Object run() {
        return null;
    }
}
上一篇下一篇

猜你喜欢

热点阅读