抽象过滤器类
来源:4-6 定义抽象过滤器类
kynnnn
2020-05-07
请问老师 在定义抽象过滤器类时,在 shouldFilter 方法中已经获取到了RequestContext,为什么在run方法中还要再初始化一遍?不是shouldFilter为true才会走run方法么,所以shouldFilter时应该已经完成了初始化吧?
您的 shouldFilter 方法是这样的,我能不能直接给成员变量赋值,run方法中去掉初始化?
@Override
public boolean shouldFilter() {
//获取当前线程的 RequestContext
RequestContext currentContext = RequestContext.getCurrentContext();
//SpringCloud内置的过滤器并不包含 NEXT,所以不包含默认为true
return (boolean) currentContext.getOrDefault(NEXT, true);
}
也就是我想改成下面这样的写法
RequestContext context;
@Override
public boolean shouldFilter() {
//获取当前线程的 RequestContext
context = RequestContext.getCurrentContext();
//SpringCloud内置的过滤器并不包含 NEXT,所以不包含默认为true
return (boolean) currentContext.getOrDefault(NEXT, true);
}
@Override
public Object run() throws ZuulException {
return cRun();
}
写回答
1回答
-
同学你好:
RequestContext 就是请求上下文,里面包含了请求的各种信息,我没有做过初始化的工作。代码有各种修改方式,能运行正确,符合预期就是可以的,不需要和我的一致。
欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!
10
相似问题