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