springboot下rest接口抛异常的定制处理

这里简单记录一下。
主要是定制ExceptionMapper,作为jaxrs框架的provider,即可将rest接口实现里抛的异常截住,并转化为Response发送给前台。
一个样例是:

@Provider
public class MyExceptionHandler implements ExceptionMapper<MyException> {

    @Override
    public Response toResponse(MyException exception) {
        MyResponse<Object> resp = new MyResponse<>();
        resp.setCode(1);
        // 根据异常错误码做国际化
        String msg = I18N.getMessage(exception.getCode(), exception.getParams());
        resp.setMessage(msg);
        return Response.ok(resp).type(MediaType.APPLICATION_JSON_TYPE).build();
    }
}

然后将provider bean配置到jaxrs的配置文件里:

<jaxrs:providers>
    <ref bean="myExceptionHandler "/>
jaxrs:providers>

你可能感兴趣的:(微服务,spring,boot,java,spring)