美文网首页java
SpringMVC 全局异常处理

SpringMVC 全局异常处理

作者: 二妹是只猫 | 来源:发表于2019-03-11 16:44 被阅读0次
创建ExceptionResolver实现HandlerExceptionResolver接口:
@Slf4j
@Component
public class ExceptionResolver implements HandlerExceptionResolver {
    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
        log.error("{} Exception",request.getRequestURI(),ex);
        ModelAndView modelAndView = new ModelAndView(new MappingJacksonJsonView());

        //使用MappingJackson2JsonView需要Jackson 2.x,这里引入的jackson是1.9版本,
        modelAndView.addObject("status",ResponseCode.ERROR.getCode());
        modelAndView.addObject("msg","接口异常,详情查看服务端日志");
        modelAndView.addObject("data", ex.toString());
        return modelAndView;
    }
}
  • 添加@Component注解,将该类添加到spring容器中,用于被扫描到。这里提一下@Service、@Component、@Repository这些注解实际并没有多大不同只是使用场景的区别:Repository一般用于dao层,Service用在service层,非这俩层的一般用Component
  • 这里不在返回视图信息而是通过MappingJacksonJsonView返回json信息,满足实际工作需要
  • 使用MappingJackson2JsonView需要Jackson 2.x,这里引入的jackson是1.9版本就使用的MappingJacksonJsonView
  • 通过modelAndView.addObject()返回打印信息,这里直接填入于前端约定好的格式就ok了。
在dispatcher-server中添加扫描:
<context:component-scan base-package="com.mmall.controller" annotation-config="true" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>

直接扫描到controller下的controller注解。

创建接口用于异常测试:
    @RequestMapping(value = "test_error.do",method =  RequestMethod.GET)
    @ResponseBody
    public void testError(){
        int a = 0;
        int b = 500/a;
    }

接口请求返回到异常信息:

error

相关文章

  • Spring Mvc 异常处理

    SpringMvc 异常全局解读 异常处理思路 首先来看一下在springmvc中,异常处理的思路 如上图所示,系...

  • SpringMVC全局异常处理

    在日常的开发过程中,你肯定遇到过页面报500的问题,这个时候如果我想一想就会觉得害怕,我们的项目如果真的在线上出现...

  • springmvc全局异常处理

    首先定义一个异常类,BusinessException,这个类必须继承RuntimeException类,不然会一...

  • springmvc全局异常处理

    其实用springmvc来实现全局异常处理我在一起的学习demo中也用到了,今天因为有些地方不是那么清晰了,所以干...

  • SpringMvc处理全局异常

    处理全局异常的方法主要为两种: 实现HandlerExceptionResolver接口 @ControllerA...

  • SpringMVC 全局异常处理

    创建ExceptionResolver实现HandlerExceptionResolver接口: 添加@Compo...

  • 全局异常处理

    首先,处理思路,嗯对,就是想想: 其次,创建全局异常处理器,开写 最后,Springmvc中配置异常处理器 ok!...

  • 11.全局异常处理器

    GlobalExceptionResolver.java Springmvc.xml配置全局异常处理器 最终的日志...

  • SpringMVC全局异常

    目录 无SpringMVC全局异常时的流程图 SpringMVC全局异常流程图 配置文件

  • spring/springmvc 全局异常处理

    1.在项目中为什么要统一异常处理 当异常返回到前端页面的时候可以统一处理,避免前端无法处理异常 不做统一异常处理,...

网友评论

    本文标题:SpringMVC 全局异常处理

    本文链接:https://www.haomeiwen.com/subject/sidbpqtx.html