@RestControllerAdvice注解的作用是什么?
时间: 2024-01-19 19:18:23 浏览: 84
Spring注解@RestControllerAdvice原理解析
@RestControllerAdvice注解的作用是为Spring MVC应用程序提供全局的异常处理和数据绑定。它可以用于定义一个全局的异常处理器,捕获并处理应用程序中抛出的异常,以及在响应中返回自定义的错误信息。此外,它还可以用于在响应中添加全局的数据绑定逻辑,例如将一些公共的数据添加到每个响应中。
@RestControllerAdvice注解继承了@ControllerAdvice注解的属性annotations,这意味着它可以通过指定annotations属性来限制它的应用范围,只对特定的控制器生效。
以下是一个使用@RestControllerAdvice注解的示例:
```java
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception ex) {
// 处理异常逻辑
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Internal Server Error");
}
@ModelAttribute
public void addCommonAttributes(Model model) {
// 添加公共的数据绑定逻辑
model.addAttribute("appName", "MyApp");
}
}
```
在上面的示例中,@RestControllerAdvice注解标记了一个全局异常处理器类GlobalExceptionHandler。它定义了一个handleException方法,用于处理所有类型的异常,并返回一个自定义的错误信息。此外,它还定义了一个addCommonAttributes方法,用于在每个响应中添加一个名为"appName"的公共属性。
阅读全文