私はSpringブートサービスを持っています。それは/ api/v1のパスを持っているので、新しいapiの/ api/v2パスを追加するようになりました。 しかし、v2のエラー/例外には異なる戻り値などがあります。したがって、RestControllerごとに異なるパスに対して2つの異なる例外ハンドラを作成することは可能ですか? Kayamanが提案されているようSpring Boot - 異なるパスのRestController異なるエラーハンドラ
0
A
答えて
0
たぶん、2つのdifferenct例外クラス(V1/V2)
@ControllerAdvice
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(V1Exception.class)
public ResponseEntity<String> handleException(V1Exception ex) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(gson.toJson("[v1]" + ex.getMessage()));
}
@ExceptionHandler(V2Exception.class)
public ResponseEntity<String> handleException(V2Exception ex) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(gson.toJson("[v2]" + ex.getMessage()));
}
0
を処理しようとする各RestControllerが異なるパスに2つの異なる例外ハンドラを作成するためだから、可能ですか?
はい、異なる@ControllerAdvice
を使用して、@ExceptionHandler
を宣言することができます。しかし、フレームワークに特定のコントローラーを教えてください。@ControllerAdvice
さまざまな方法があります。 @ControllerAdviceパラメータ:
- v1およびv2コントローラが異なるパッケージにある場合は、basePackages/basePackageClassesをチェックしてください。
- 注釈。 v1コントローラとv2コントローラのカスタム注釈を作成する必要があります。
- assignableTypes。
関連する問題
- 1. Spring Boot @RestController no respond
- 2. Spring Boot + FreeMarker + RestControllerテンプレートをロードする
- 3. java spring boot amqp異なる動作をする2つのリスナー
- 4. Angularjs + spring boot(異なる2つのコントローラが必要)
- 5. は異なるパス
- 6. spring-bootアプリケーションで、異なるスコープの異なるデータベースにアクセスする方法を教えてください。
- 7. チェーン内の各ハンドラに異なるエラーハンドラを割り当てる
- 8. カスタムエラーハンドラは、一般的なエラーハンドラとは異なるエラー
- 9. angularfire2は、異なるパス
- 10. Springで異なる例外の再試行が異なる@Retryable
- 11. Spring:異なるApplicationContextの異なるロギング動作
- 12. Spring MVCで異なるコントローラ
- 13. ルート53が異なるs3バケットと異なるパス
- 14. Spring Boot - Spring RestControllerのマップですべてのリクエストパラメータを取得する方法は?
- 15. GitLab CI。異なるユーザーのymlのパス
- 16. Visual Basicアプリケーションストア異なるパスの設定
- 17. 異なるビューへのパス - Joomla
- 18. 異なるパス上のヘッダーを除外
- 19. 各ABIの異なるライブラリ検索パス
- 20. アスペクト使用時にSpring Boot RestControllerのコンストラクタが呼び出されない
- 21. App Engine上の同じパスで異なるドメインの異なるファイル
- 22. getExternalFilesDirは異なるデバイス内の異なるパスを返します
- 23. Androdi Studio:異なるマシン上のdev環境で異なるsdkパスを使用
- 24. SpringのSimpleFormControllerと異なるビュー
- 25. GrailsプロジェクトのSpringセキュリティで異なるログインコントローラ
- 26. Spring Bootにログインするときに、プロパティが異なる名前でマッピングされるのはなぜですか?
- 27. DNSリダイレクトUNCパス異なるドメイン
- 28. Asp.net MVC同じビュー名、異なるパス
- 29. パス異なるPHP変数が
- 30. ファイルを含む異なるパス
別のクラスに入れますか? – Kayaman