Annotation Interface RestControllerAdvice
@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.
- Since:
- 4.3
- Author:
- Rossen Stoyanchev, Sam Brannen
- See Also:
-
Optional Element Summary
Modifier and TypeOptional ElementDescriptionClass<? extends Annotation>[]
Array of annotations.Class<?>[]
Array of classes.Class<?>[]
Type-safe alternative tobasePackages()
for specifying the packages in which to select controllers to be advised by the@RestControllerAdvice
annotated class.String[]
Array of base packages.Alias forControllerAdvice.name()
.String[]
Alias for thebasePackages()
attribute.
-
Element Details
-
name
Alias forControllerAdvice.name()
.- Since:
- 6.1
- Default:
- ""
-
value
Alias for thebasePackages()
attribute.Allows for more concise annotation declarations — for example,
@RestControllerAdvice("org.my.pkg")
is equivalent to@RestControllerAdvice(basePackages = "org.my.pkg")
.- See Also:
- Default:
- {}
-
basePackages
Array of base packages.Controllers that belong to those base packages or sub-packages thereof will be included — for example,
@RestControllerAdvice(basePackages = "org.my.pkg")
or@RestControllerAdvice(basePackages = {"org.my.pkg", "org.my.other.pkg"})
.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.- Default:
- {}
-
basePackageClasses
Type-safe alternative tobasePackages()
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.
- Default:
- {}
-
assignableTypes
Array of classes.Controllers that are assignable to at least one of the given types will be advised by the
@RestControllerAdvice
annotated class.- Default:
- {}
-
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
.- Default:
- {}
-