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