@RestControllerAdvice怎么定义
时间: 2024-04-18 11:21:25 浏览: 90
@RestControllerAdvice是Spring框架中的一个注解,用于定义全局异常处理和全局数据绑定。通过使用@RestControllerAdvice注解,我们可以将异常处理和数据绑定逻辑集中在一个类中,方便统一管理和维护。
要定义一个@RestControllerAdvice类,需要按照以下步骤进行操作:
1. 创建一个Java类,并使用@RestControllerAdvice注解进行标记。
2. 在类中定义异常处理方法或数据绑定方法。异常处理方法使用@ExceptionHandler注解进行标记,数据绑定方法使用@ModelAttribute注解进行标记。
3. 异常处理方法需要指定处理的异常类型,可以是具体的异常类或者是异常类的父类。当发生指定类型的异常时,会调用对应的异常处理方法进行处理。
4. 数据绑定方法可以在方法参数中使用@ModelAttribute注解来获取请求中的数据,并将其绑定到方法参数上。
下面是一个示例代码:
```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 addAttributes(Model model) {
// 数据绑定逻辑
model.addAttribute("appName", "MyApp");
}
}
```
在上面的示例中,我们定义了一个全局异常处理类GlobalExceptionHandler,并使用@RestControllerAdvice注解进行标记。该类中包含了一个handleException方法,用于处理Exception类型的异常。当发生Exception类型的异常时,会调用handleException方法进行处理,并返回一个表示服务器内部错误的响应。
另外,我们还定义了一个addAttributes方法,使用@ModelAttribute注解进行标记。该方法用于将一个名为"appName"的属性添加到Model中,以供后续的请求处理方法使用。
阅读全文