在使用SpringBoot的时候遇到的一些小坑

出现问题原因:在开发过程中把一些公关的东西封装成一个jar包,多个项目共同使用这个jar包(这个jar中包含数据处理的代码)。然而,有些项目没有用到数据处理,没有配置数据源。所以,在启动的时候会报错。

解决方案:引入 @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})

使用RestTemplate访问restful服务的异常处理

问题描述:

在使用RestTemplate访问restful接口的时候,如果接口抛出异常,默认情况下捕获的异常不符合自定义的异常规范。

解决:

RestTemplate默认使用的是 DefaultResponseErrorHandler
处理异常。如果我们需要定制自己的一处处理,可以编写定制化的处理器

如:

public class CustomResponseErrorHandler implements ResponseErrorHandler {

    private ResponseErrorHandler errorHandler = new DefaultResponseErrorHandler();

    @Override
    public boolean hasError(ClientHttpResponse response) throws IOException {
        return errorHandler.hasError(response);
    }

    @Override
    public void handleError(ClientHttpResponse response) throws IOException {

        String theString = IOUtils.toString(response.getBody());
        Map<String, String> error = (Map<String, String>) JsonMapper.fromJsonString(theString, Map.class);
        String errorCode = error.get("errorCode");
        String message = error.get("message");

        throw new RemoteCallException(errorCode, message, null);

    }
}

然后

RestTemplate restTemplate = new RestTemplate();
restTemplate.setErrorHandler(new CustomResponseErrorHandler());

原文 

http://webfuse.cn/2017/10/28/在使用SpringBoot的时候遇到的一些小坑/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 在使用SpringBoot的时候遇到的一些小坑

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址