注释类型 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 appropriateHandlerMapping
-HandlerAdapter
pair is configured such as theRequestMappingHandlerMapping
-RequestMappingHandlerAdapter
pair which are the default in the MVC Java config and the MVC namespace.- 从以下版本开始:
- 4.3
- 作者:
- Rossen Stoyanchev, Sam Brannen
- 另请参阅:
RestController
,ControllerAdvice
可选元素概要
可选元素 修饰符和类型 可选元素 说明 Class<? extends Annotation>[]
annotations
Array of annotations.Class<?>[]
assignableTypes
Array of classes.Class<?>[]
basePackageClasses
Type-safe alternative tobasePackages()
for specifying the packages in which to select controllers to be advised by the@RestControllerAdvice
annotated class.String[]
basePackages
Array of base packages.String[]
value
Alias for thebasePackages()
attribute.
元素详细资料
value
@AliasFor(annotation=ControllerAdvice.class) String[] 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")
.- 另请参阅:
basePackages()
- 默认值:
- {}
basePackages
@AliasFor(annotation=ControllerAdvice.class) String[] 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.- 默认值:
- {}
basePackageClasses
@AliasFor(annotation=ControllerAdvice.class) Class<?>[] 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.
- 默认值:
- {}
assignableTypes
@AliasFor(annotation=ControllerAdvice.class) Class<?>[] 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
@AliasFor(annotation=ControllerAdvice.class) Class<? extends Annotation>[] 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
.- 默认值:
- {}