2

私のプロジェクトでは、エラーを処理する Base Controller を使用してクラスを作成する必要があります。すべてのクラスに付ける以外に本当に「MAIN」Controllerにする方法はないかお聞きしたいextends BaseControllerです。つまり、構成ファイルのいくつかのトリッキーな変更や、おそらく便利な注釈です。その問題を解決する唯一の方法は、すべてのクラス定義にBaseController を拡張することですか?

4

2 に答える 2

1

@ControllerAdvice(3.2.0 以降) がニーズを満たします。

アプリケーション内のすべてのコントローラーに必要な Spring @MVC 機能については、@ControllerAdviceアノテーションの使用を検討してください。これは Spring 3.2.0 以降に導入され、@MVC ハンドラーからの例外をグローバルに処理するのに非常に役立ちます。javadoc から:

通常、すべてのメソッドに適用される@ExceptionHandler@InitBinder、および メソッドを定義するために使用されます。@ModelAttribute@RequestMapping

BaseControllerところで、ある種の使用は良いデザインではないと思います。ただし、Spring の下位バージョンの同様の機能については、これが適切な回避策になる可能性があります。

于 2013-02-18T02:15:56.797 に答える
0

独自のHandlerExceptionResolverの実装に問題がありますか?

要約すると、次のようになります。

  • @ExceptionHandler=指定されたコントローラー内
  • HandlerExceptionResolver=アプリケーション全体
于 2012-12-04T22:26:02.217 に答える