@Target(value=TYPE) @Retention(value=RUNTIME) @Documented @ControllerAdvice @ResponseBody public @interface RestControllerAdvice
@ControllerAdvice および @ResponseBody でアノテーションが付けられている便利なアノテーション。 このアノテーションを持つ型は、@ExceptionHandler メソッドがデフォルトで @ResponseBody セマンティクスを想定するコントローラーアドバイスとして扱われます。
注意 : @RestControllerAdvice は、MVCJava 構成および MVC 名前空間のデフォルトである RequestMappingHandlerMapping-RequestMappingHandlerAdapter ペアなどの適切な HandlerMapping-HandlerAdapter ペアが構成されている場合に処理されます。
RestController, ControllerAdvice| 修飾子と型 | オプションの要素と説明 |
|---|---|
java.lang.Class<? extends java.lang.annotation.Annotation>[] | annotations アノテーションの配列。 |
java.lang.Class<?>[] | assignableTypes クラスの配列。 |
java.lang.Class<?>[] | basePackageClasses@ControllerAdvice アノテーション付きクラスによって支援されるコントローラーを選択するパッケージを指定するための、value() の型安全な代替手段。 |
java.lang.String[] | basePackages 基本パッケージの配列。 |
java.lang.String[] | valuebasePackages() 属性のエイリアス。 |
@AliasFor(value="basePackages") public abstract java.lang.String[] value
basePackages() 属性のエイリアス。 より簡潔なアノテーション宣言を可能にします。例: @ControllerAdvice("org.my.pkg") は @ControllerAdvice(basePackages="org.my.pkg") と同等です。
basePackages()@AliasFor(value="value") public abstract java.lang.String[] basePackages
それらの基本パッケージまたはそのサブパッケージに属するコントローラーが含まれます(例: @ControllerAdvice(basePackages="org.my.pkg") または @ControllerAdvice(basePackages={"org.my.pkg", "org.my.other.pkg"}))。
value() はこの属性のエイリアスであり、アノテーションをより簡潔に使用できるようにします。
文字列ベースのパッケージ名の型安全な代替として basePackageClasses() を使用することも検討してください。
public abstract java.lang.Class<?>[] basePackageClasses
@ControllerAdvice アノテーション付きクラスによって支援されるコントローラーを選択するパッケージを指定するための、value() の型安全な代替手段。この属性によって参照される以外の目的を果たさない特別なノーオペレーションマーカークラスまたはインターフェースを各パッケージに作成することを検討してください。
public abstract java.lang.Class<?>[] assignableTypes
指定された型の少なくとも 1 つに割り当て可能なコントローラーは、@ControllerAdvice アノテーション付きクラスによって支援されます。
public abstract java.lang.Class<? extends java.lang.annotation.Annotation>[] annotations
これまたはこれらのアノテーションの 1 つでアノテーションが付けられたコントローラーは、@ControllerAdvice アノテーション付きクラスによって支援されます。
特別なアノテーションの作成を検討するか、@RestController などの事前定義されたアノテーションを使用してください。