ZuulFilter
ZuulFilter
是Zuul
中核心组件,通过继承该抽象类,覆写几个关键方法达到自定义调度请求的作用,这里filter不是Java web
中的filter,不要混淆.
new ZuulFilter() {
@Override
public int filterOrder() {
return 0;
}
@Override
public String filterType() {
return null;
}
@Override
public boolean shouldFilter() {
return false;
}
@Override
public Object run() {
return null;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
filterOrder
:filter执行顺序,通过数字指定
shouldFilter
:filter是否需要执行 true
执行 false
不执行
run
: filter具体逻辑
filterType
:filter类型,分为以下几种
pre
:请求执行之前filter
route
: 处理请求,进行路由
post
: 请求处理完成后执行的filter
error
:出现错误时执行的filter
quick start
直接给出一个简单demo,通过demo代码再具体解析
package com.lkl.springcloud.zuul;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.ContextLifecycleFilter;
import com.netflix.zuul.context.RequestContext;
import com.netflix.zuul.filters.FilterRegistry;
import com.netflix.zuul.http.ZuulServlet;
import com.netflix.zuul.monitoring.MonitoringHelper;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.FilterRegistrationBean;
import org.springframework.boot.context.embedded.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import java.io.IOException;
/**
* Created by liaokailin on 16/5/24.
*/
@SpringBootApplication
public class Application {
public