-
问题描述
在项目中使用了全局异常处理,异常处理的代码逻辑被抽取到一个公共的模块,但是在抛出异常的业务模块中的异常没有被这个公共模块@RestControllerAdvice捕获。 -
问题定位
在发现问题后,在全局异常处理的代码逻辑中加入断点debug发现代码并没有进入这个方法。
两个模块的包结构如下: -
common模块, 全局异常的处理
-
业务模块 抛出异常的模块
-
解决问题
-
由于springboot的自动扫包是默认扫描启动类所在目录为根目录,也就是com.quantum.product下的包以及配置。然而在common模块中,处理异常的逻辑是在com.quantum下。因此这里没有扫描到这些代码逻辑。我们需要在业务代码中加入@SpringBootApplication(scanBasePackages = {“com.quantum”})来指定扫描。
全局异常处理@RestControllerAdvice失效
最新推荐文章于 2024-07-12 12:32:30 发布