新建spring cloud程序,添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zuul</artifactId>
</dependency>
启动类上添加注解
@EnableZuulProxy和@EnableEurekaClient
路由转发
在application.properties配置中添加路由
zuul.routes.api.path=/api/**
zuul.routes.api.service-id=consumerclient
意思是,所有以api开头的接口都转发到consumerclient服务
过滤器
新增自定义的过滤器类,继承ZuulFilter
@Component
public class MyFilter extends ZuulFilter {
@Override
public String filterType() {
return "pre";
}
@Override
public int filterOrder() {
return 0;
}
@Override
public boolean shouldFilter() {
return true;
}
@Override
public Object run() {
return null;
}
}
实现父类中的4个方法
- filterType方法:
表示的是过滤器类型,返回字符串,表示的意思是
– pre:在路由分发之前执行过滤
–routing:在路由分发之中执行过滤
–post: 在路由分发之后执行过滤
–error:发送错误的是后执行过滤 - filterOrder方法:
返回int类型的数,表示的是过滤的顺序 - shouldFilter方法:
返回一个布尔值,用来判断是否需要过滤,返回true为需要过滤,这个方法里面也可以写判断逻辑 - run方法:
返回一个对象,这个方法里面是过滤的具体实现,可以编写很复杂的代码,可以查询数据库,根据返回值判断是否满足过滤条件