2016-05-31 19 views
2

私はSpringブートアプリケーションを作成しています。私は今例外処理を実装しています。Java SpringBoot例外処理

次の問題が発生しました。

私の例外ハンドラは、次のようになります。

@ControllerAdvice 
public class SpecialExceptionHandler { 

@ExceptionHandler(MissingServletRequestParameterException.class) 
@ResponseStatus(HttpStatus.BAD_REQUEST) 
public ResponseObject missingServletErrorHandler(HttpServletRequest req, MissingServletRequestParameterException exception) { 

//do something 
return responseObject; 
}} 

そして、私は

@ControllerAdvice 
public class GeneralExceptionHandler {  

@ExceptionHandler(Exception.class) 
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) 
public ResponseObject defaultErrorHandler(HttpServletRequest req, Exception exception) { 
// do something 
return responseObject; 
}} 

に見える一般的な例外ハンドラを得た。しかし、私は問題を抱えて:私のアプリケーションは、常に代わりのGeneralExceptionHandlerに実行されますGeneralExceptionHandlerクラスの名前を、特別な例外ハンドラの後にアルファベット順に(例えば、 'GeneralExceptionHandler'を 'zGeneralExceptionHandler'に変更する)名前に変更しない限り、特別なハンドラを使用します。

この問題を解決するにはどうすればよいですか?

答えて

1

あなたは

(Nは順序を定義 intである)自分の登録順序を強制するために、あなたの ControllerAdviceの上 @Order(N)注釈を追加してみてください可能性があり