Как отформатировать вывод исключений в Springboot с ResponseBodyAdvice <Object>и Interceptor? - PullRequest
1 голос
/ 13 марта 2019

Я форматирую вывод приложения Springboot в json, даже когда происходит исключение.

формат выглядит следующим образом:

{
"result": null,
"code": "-1",
"msg": "Exception happen"
}

Это нормально, когда код только с ResponseBodyAdvice, основной код:

@ResponseStatus(HttpStatus.OK)
@ExceptionHandler(Exception.class)
@ResponseBody
public <T> GlobalResponse<T> handleException(HttpServletRequest request, Exception e) {
    return GlobalResponse.fail("Exception happen");
}

Но когда я добавляю Interceptor, как показано ниже, приложение всегда вызывает путь "/ error", возвращает страницу с ошибкой, а не данные json.

@SpringBootConfiguration
public class InterceptorConfig extends WebMvcConfigurationSupport{

@Override
protected void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new TestInterceptor())
            .addPathPatterns("/**")
            .excludePathPatterns("/error");
    super.addInterceptors(registry);
}

TestInterceptor является перехватчиком проверки токена.

Теперь я добавляю путь включения / «ошибки» контроллера, чтобы разобраться с этим, но я хочу знать, есть ли лучший и естественный способ решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...