Bootstrap

多模块项目/全局异常处理/失效/没用/不生效

需求

在common模块添加一个GlobalExceptionHandler,在引用了common模块的其他模块抛出某个异常时,可以直接通过这个全局异常处理器return前端,异常的消息在异常里,抛出时传入参数

问题

现有common模块和oauth2模块,结构如下,oauth2模块依赖common模块
在这里插入图片描述
在TokenController中throw new ParameterException(“测试错误”);时,应该是可以直接返回给用户“测试错误”的response的,测试失效,用户直接收到提示Internal Server Error,不是带有消息的响应体

一种可能的原因

虽然依赖了common模块,但是com.lemongo.oauth2下的Applicaiton扫描不到com.lemongo.commons下的GlobalExceptionHandler

解决方案

通过修改oauth2的启动函数
@SpringBootApplication(scanBasePackages = {"com.lemongo"})
添加要扫描的包,这样一来,com.lemongo下面的commons和oauth2都能被到扫描到,注意不能只写"com.lemongo.commons"

;