這一部分示例見這個項目的 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