在springboot项目中@RestControllerAdvice注解详解
时间: 2023-11-18 12:16:06 浏览: 159
Spring注解@RestControllerAdvice原理解析
@RestControllerAdvice 是一个用于全局异常处理和统一返回结果的注解。在 Spring Boot 项目中,我们可以通过 @RestControllerAdvice 注解来定义一个全局的异常处理类。
使用 @RestControllerAdvice 注解的类可以包含以下几个注解:
1. @ExceptionHandler:用于处理特定异常类型的方法。
2. @InitBinder:用于在控制器中初始化 WebDataBinder 的方法。
3. @ModelAttribute:将键值对添加到全局的 Model 中。
4. @ResponseBody:将方法的返回值作为响应体。
当项目中发生异常时,@RestControllerAdvice 注解的类会捕获到异常并根据具体的异常类型执行相应的处理方法。这样可以实现全局的异常处理,避免在每个接口中都写异常处理逻辑。
下面是一个简单的示例代码:
```java
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception e) {
// 异常处理逻辑
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
}
}
```
在上面的代码中,使用 @ExceptionHandler 注解来定义了一个处理 Exception 类型异常的方法。当项目中出现 Exception 类型的异常时,会执行该方法,并返回一个带有异常信息的 ResponseEntity 对象。
注意:@RestControllerAdvice 注解只会扫描被 @Controller 或 @RestController 注解的类。因此,确保你的全局异常处理类被正确扫描并起作用。
希望能帮到你!如有其他问题,请继续提问。
阅读全文