RestTemplateBuilder配置RestTemplate

我仅仅宣布spring boot2的一个新的功能,开始用spring搭建REST

1、介绍

在这个简短的文章中,我们将要查看怎样配置一个spring RestTemplate bean。

让我们开始讨论3个主要的配置类型。

  • 使用默认的RestTemplateBuilder
  • 使用一个RestTemplateCustomizer
  • 创建我们的RestTemplateBuilder

为了更容易的测试,请按照指导《怎样安装一个简单的spring boot应用程序》, how to set up a simple Spring Boot application.

 

2、配置使用默认的RestTemplateBuilder

为了配置一个RestTemplate 这个方法,我们需要在我们的类中注入spring boot提供默认的RestTemplateBuilder bean

private RestTemplate restTemplate;
 
@Autowired
public HelloController(RestTemplateBuilder builder) {
    this.restTemplate = builder.build();
}

RestTemplate使用这个方法创建,但是它的范围仅限制于我们创建的类中。

3、使用一个RestTemplateCustomizer配置

对于这个途径,我们可以创建一个广泛的应用,附加自定义。

这是一个稍微复杂难懂的途径。对于这个途径我们需要创建一个实现RestTemplateCustomizer的类,并且作为一个bean定义它。

public class CustomRestTemplateCustomizer implements RestTemplateCustomizer {
    @Override
    public void customize(RestTemplate restTemplate) {
        restTemplate.getInterceptors().add(new CustomClientHttpRequestInterceptor());
    }
}

CustomClientHttpRequestInterceptor 拦截器做一些基本的请求日志记录。

public class CustomClientHttpRequestInterceptor implements ClientHttpRequestInterceptor {
    private static Logger LOGGER = LoggerFactory
      .getLogger(CustomClientHttpRequestInterceptor.class);
 
    @Override
    public ClientHttpResponse intercept(
      HttpRequest request, byte[] body, 
      ClientHttpRequestExecution execution) throws IOException {
  
        logRequestDetails(request);
        return execution.execute(request, body);
    }
    private void logRequestDetails(HttpRequest request) {
        LOGGER.info("Headers: {}", request.getHeaders());
        LOGGER.info("Request Method: {}", request.getMethod());
        LOGGER.info("Request URI: {}", request.getURI());
    }
}

现在在配置类中我们定义一个CustomRestTemplateCustomizer bean或者在我们的spring boot application类中。

@Bean
public CustomRestTemplateCustomizer customRestTemplateCustomizer() {
    return new CustomRestTemplateCustomizer();
}

在这个配置中,在我们的应用中我们使用的每一个RestTemplate 都将设置自定义拦截器。

 

4、配置创建我们自己的RestTemplateBuilder

注意:文章到这里还没有完,由于篇幅限制,完整内容请到hongfu951博客上查看

完整内容URL地址:用RestTemplateBuilder配置一个RestTemplate【翻译】

欢迎访问:www.hongfu951.com博客,查看更多文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值