Как отформатировать вывод исключения в springboot с помощью ResponseBodyAdvice и перехватчика?

#spring-boot #spring-mvc #interceptor #spring-boot-maven-plugin

#весенняя загрузка #spring-mvc #перехватчик #spring-boot-maven-plugin

Вопрос:

Я форматирую вывод моего приложения 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");
}
  

Но когда я добавляю перехватчик, подобный приведенному ниже коду, приложение всегда вызывает путь «/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 является перехватчиком проверки токена.

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