一、网关Zuul
SpringCloud的Zuul组件,为我们提供了路由转发的功能,同时在路由过程中,还可以进行日志打印,权限控制等功能。日志打印以及权限控制可以通过实现ZuulFilter来进行:
package com.zhou.config;
import com.netflix.zuul.ZuulFilter;
import com.netflix.zuul.context.RequestContext;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
@Component
public class MyFilter extends ZuulFilter {
/**
* 返回一个字符串代表过滤器的类型,在zuul中定义了四种不同生命周期的过滤器类型,具体如下:
* pre 路由之前
* routing 路由之时
* post 路由之后
* error 发生错误时
* 常亮可以查看 FilterConstants
*/
@Override
public String filterType() {
return "pre";
}
/**
* 过滤器的过滤顺序
*/
@Override
public int filterOrder() {
return 0;
}
/**
* 这里可以写逻辑判断,是否要过滤,true,永远过滤。
*/
@Override
public boolean shouldFilter() {
return true;
}
/**
* 过滤器的具体逻辑。可用很复杂,包括查sql,nosql去判断该请求到底有没有权限访问。
*/
@Override
public Object run() {
Reque