3.1四、使用@ControllerAdvice和@RestControllerAdvice通知控制器

  這一部分示例見這個項目的 mvc 分支下的 MyControllerAdvice.java 和 MyController.javahtml


  註解@ControllerAdvice是一個組件註解(component annotation),它容許實現類經過類路徑掃描被自動檢測到。當使用 MVC 命名空間或者 MVC Java 配置時自動啓用。java

  帶有@ControllerAdvice註解的類能夠包含帶有@ExceptionHandler@InitBinder@ModelAttribute註解的方法,and these methods will apply to @RequestMapping methods across all controller hierarchies as opposed to the controller hierarchy within which they are declared.git

請原諒我拙劣的英語水平。謝謝!web

  @RestControllerAdvice is an alternative where @ExceptionHandler methods assume @ResponseBody semantics by default.spring

  @ControllerAdvice@RestControllerAdvice均可以指向控制器的一個子集:api

// 指向全部帶有註解@RestController的控制器
@ControllerAdvice(annotations = RestController.class)
public class AnnotationAdvice {}

// 指向全部指定包中的控制器
@ControllerAdvice("org.example.controllers")
public class BasePackageAdvice {}

// 指向全部帶有指定簽名的控制器
@ControllerAdvice(assignableTypes = {ControllerInterface.class, AbstractController.class})
public class AssignableTypesAdvice {}

  更多詳情見@ControllerAdvice 文檔mvc

相關文章
相關標籤/搜索