有关SpringMVC全局异常处理器
2017-04-10 16:47
381 查看
关于springmvc的全局异常处理器,很多人都会想到@ExceptionHandler,但是如果项目既有@ResponBody返回json,还有返回xml的时候,默认ExceptionHandler返回的就是xml格式的响应;
为了解决这个问题,我们自定义一个类,继承ExceptionHandlerExceptionResolver 重写 afterPropertiesSet 方法,在这个方法中 加入可以返回json格式的消息转换器,比如MappingJackson2HttpMessageConverter;
代码如下:
在上述代码的基础上,就可以正常使用(指返回json格式的数据)下面全局异常处理器:
为了解决这个问题,我们自定义一个类,继承ExceptionHandlerExceptionResolver 重写 afterPropertiesSet 方法,在这个方法中 加入可以返回json格式的消息转换器,比如MappingJackson2HttpMessageConverter;
代码如下:
@Component public class IHandlerExceptionResolver extends ExceptionHandlerExceptionResolver { @Override public void afterPropertiesSet() { List messageConverters=getMessageConverters(); messageConverters.add(new MappingJackson2HttpMessageConverter()); setMessageConverters(messageConverters); setOrder(2); super.afterPropertiesSet(); } }
在上述代码的基础上,就可以正常使用(指返回json格式的数据)下面全局异常处理器:
@Controller @ControllerAdvice public class ExHandler { @ExceptionHandler(Exception.class) @ResponseBody public ApiResult doEx(Exception ex){ return new ApiResult(500,ex.getMessage(),null); } }
// 基于java代码的配置,添加自定义异常处理器 @Configuration @EnableWebMvc public class MvcConfig extends WebMvcConfigurerAdapter implements ApplicationContextAware { private ApplicationContext applicationContext; @Autowired private IHandlerExceptionResolver exceptionResolver;
@Override public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) { super.configureHandlerExceptionResolvers(exceptionResolvers); exceptionResolvers.add(exceptionResolver); }
相关文章推荐
- springmvc的全局异常处理器开发
- SpringMVC全局异常处理器
- 【SpringMVC整合MyBatis】springmvc异常处理-全局异常处理器开发
- SpringMvc全局异常处理器配置
- 【SpringMVC整合MyBatis】springmvc异常处理-全局异常处理器开发
- SpringMVC全局异常处理器
- springmvc异常处理-全局异常处理器开发
- Springmvc全局异常处理器
- springmvc(五)---全局异常处理器
- SpringMvc 全局异常处理器定义,友好的返回后端错误信息
- 基于SpringMVC的全局异常处理器介绍
- springmvc全局异常处理器的配置
- SpringMVC数组、集合类型参数绑定与异常处理器
- (转)SpringMVC学习(八)——SpringMVC中的异常处理器
- springMVC --全局异常处理(两种方式)
- springMVC实现全局异常处理
- springmvc学习之异常处理器
- springmvc全局异常的初步使用
- SpringMVC简单异常处理器SimpleMappingExceptionResolver的使用
- springmvc全局异常处理