在使用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:如果您想和业内技术大牛交流的话,请加qq群(527933790)或者关注微信公众 号(AskHarries),谢谢!

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

赞 (0)

分享到:更多 ()

评论 0

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