这两天在Springboot项目改造 整合SaToken 碰到了一个奇怪的问题,@ControllerAdvice莫名的失效.
先诉一下我的需求,
1. 每次请求请求时,SaToken会进行Token时效性校验,
2. 校验不通过就抛出NotLoginException,
3.然后Sprinboot 全局拦截器@ControllerAdvice进行拦截,将自己构造的错误信息返回至前端
图中@ControllerAdvice此时并未生效
经过层层筛选排除,最终发现,拦截器放行的接口 /error.
放行此接口,就会导致@ControllerAdvice 全局异常拦截 无法拦截 SaToken 拦截器中抛出的异常,直接返回前台500错误码;
在拦截器中 将/error 注释 ,取消放行,代码回归正常。。。。。。
这是我遇到最无语的Bug......