2020/09/28
20:38
最近在封装shiro+jwt+redis 的自动配置,使用了 @RestControllerAdvice 来返回登录时会出现的 AuthenticationException 异常,响应状态 code 为 401

但是当把这个依赖包导入项目之后,发现 响应状态code 不是 401 ,而是 500.
断点这里,发现并没有走这里的流程。
后来想起另一个依赖包 中也存在 一个 全局异常处理,并且 有一个 Exception 的 异常处理:

断点了一下这里,发现确实是进入了这里的流程。
想了想 spring 应该按照加载 bean 的顺序来处理的。
后边的这个bean 可以 加载在了 前面,命中了 Exception 的异常处理,所以直接 响应了。
解决:
让 前边的异常处理 bean 加载顺序更靠前就可以了。

使用 @Order 指定 bean 的加载优先级