即使发生异常,我也将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是令牌验证拦截器。
现在,我添加了一个控制器包含路径“ / error”来解决该问题,但是我想知道是否有更好,更自然的方法来解决这个问题。