Annotation Interface RestControllerAdvice

@Target(TYPE) @Retention(RUNTIME) @Documented @ControllerAdvice @ResponseBody public @interface RestControllerAdvice
A convenience annotation that is itself annotated with @ControllerAdvice and @ResponseBody.

Types that carry this annotation are treated as controller advice where @ExceptionHandler methods assume @ResponseBody semantics by default.

NOTE: @RestControllerAdvice is processed if an appropriate HandlerMapping-HandlerAdapter pair is configured such as the RequestMappingHandlerMapping-RequestMappingHandlerAdapter pair which are the default in the MVC Java config and the MVC namespace.

Rossen Stoyanchev, Sam Brannen
See Also:
  • Element Details

    • value

      Alias for the basePackages() attribute.

      Allows for more concise annotation declarations — for example, @RestControllerAdvice("") is equivalent to @RestControllerAdvice(basePackages = "").

      See Also:
    • basePackages

      Array of base packages.

      Controllers that belong to those base packages or sub-packages thereof will be included — for example, @RestControllerAdvice(basePackages = "") or @RestControllerAdvice(basePackages = {"", ""}).

      value() is an alias for this attribute, simply allowing for more concise use of the annotation.

      Also consider using basePackageClasses() as a type-safe alternative to String-based package names.

    • basePackageClasses

      Type-safe alternative to basePackages() for specifying the packages in which to select controllers to be advised by the @RestControllerAdvice annotated class.

      Consider creating a special no-op marker class or interface in each package that serves no purpose other than being referenced by this attribute.

    • assignableTypes

      Array of classes.

      Controllers that are assignable to at least one of the given types will be advised by the @RestControllerAdvice annotated class.

    • annotations

      Array of annotations.

      Controllers that are annotated with at least one of the supplied annotation types will be advised by the @RestControllerAdvice annotated class.

      Consider creating a custom composed annotation or use a predefined one, like @RestController.