註解@ControllerAdvice
是一個組件註解(component annotation),它允許實現類通過類路徑掃描被自動檢測到。當使用 MVC 命名空間或者 MVC Java 配置時自動啓用。
帶有@ControllerAdvice
註解的類可以包含帶有@ExceptionHandler
、@InitBinder
和@ModelAttribute
註解的方法
@ControllerAdvice
和@RestControllerAdvice
都可以指向控制器的一個子集:
// 指向所有帶有註解@RestController的控制器
@ControllerAdvice(annotations = RestController.class)
public class AnnotationAdvice {}
// 指向所有指定包中的控制器
@ControllerAdvice("org.example.controllers")
public class BasePackageAdvice {}
// 指向所有帶有指定簽名的控制器
@ControllerAdvice(assignableTypes = {ControllerInterface.class, AbstractController.class})
public class AssignableTypesAdvice {}