springboot 多模块下 RestControllerAdvice 失效
时间: 2023-11-23 09:55:29 浏览: 223
解决SpringBoot2多线程无法注入的问题
在Spring Boot多模块项目中,如果使用@RestControllerAdvice注解的异常处理类不生效,可能是因为该类没有被正确扫描到。可以尝试以下两种方法解决该问题:
1.在启动类上添加@ComponentScan注解,手动指定需要扫描的包路径,例如:
```java
@SpringBootApplication
@ComponentScan(basePackages = {"com.example.module1", "com.example.module2"})
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
2.在异常处理类上添加@ControllerAdvice注解,并使用@Order注解指定优先级,例如:
```java
@ControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
public class GlobalExceptionHandler {
// 异常处理方法
}
```
如果以上两种方法都无法解决问题,可以检查一下异常处理类是否被正确地注入到Spring容器中。可以在异常处理类中添加一个构造函数,并打上@Autowired注解,然后在启动类中打印一下该类的实例,看看是否被正确地注入到了Spring容器中。
阅读全文