2017-02-27 15 views
0

私はspring mvcプロジェクトに2つのControllerAdviceを持っています。メソッドレベルの@ControllerAdvice

//return the json message 
@ControllerAdvice(annotations = RestController.class) 
public class AdviceRestController 

//redirect to the error 
@ControllerAdvice(annotations = Controller.class) 
public class AdviceController 

@Controller注釈付きクラスに@ResponseBody注釈付きメソッドがあります。メソッドレベルの注釈がありますか?それから、@ResponseBody注釈付きメソッドのAdviceControllerにメソッドを記述することができます。

すなわち

//reoponsebody method only 
@ReoponsebodyMethod 
@ExceptionHandler({Exception.class}) 
@ResponseStatus(value = HttpStatus.INTERNAL_SERVER_ERROR) 
public String handleIllegalStateException(Exception ex) { 
    //return son 
} 

答えて

0

あなたが何をしたいのかによって異なります。 ResponseBodyAdvice<T>を実装するControllerAdvice注釈付きクラスを実装できます。

@ControllerAdvice 
public class MyResponseBodyCustomizer implements ResponseBodyAdvice<ResponseBodyObject> { 
    @Override 
    boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) { 
    return false; 
    } 

    @Override 
    ResponseBodyObject beforeBodyWrite(Caravan body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) { 
    return null; 
    } 
} 
+0

こんにちは@Strelok、それは長い時間でした。前に回避策を使用しています。私はReoponsebodyアノテートメソッドで例外をキャッチしたい。 – shuan

関連する問題