当利用Spring MVC时,我们可以利用拦截器“预先”和“发布”处理请求。具体来说,我们可以在prehandle方法中设置资源(例如线程局部),并保证有机会在afterCompletion / afterConcurrentHandlingStarted方法中清理这些资源。
考虑Zuul过滤器,如果我们在“Pre”过滤器中设置资源,我们是否同样保证将调用“Post”过滤器?有没有更好的方法来使用这种编程模型初始化/清理线程本地?
感谢,
约书亚
答案 0 :(得分:0)
从查看代码:https://github.com/Netflix/zuul/看起来如果“pre”或“route”中存在异常,则运行“error”过滤器,然后“post”过滤器。如果在任何类型(“pre”或“route”等)中发生异常,则会跳过其余的过滤器,因此如果您的过滤器是第一个,我会说它将被调用。