Skip to content

Spring Web 初始化 RestTemplate

Spring Web 如何初始化 RestTemplate

可以通过两种方式初始化 RestTemplate:

  1. 使用构造函数

可以使用 RestTemplate 的构造函数,将需要的 HttpMessageConverter、ClientHttpRequestFactory 和 Interceptor 传入:

java
RestTemplate restTemplate = new RestTemplate(
        Arrays.asList(new MappingJackson2HttpMessageConverter()),
        new SimpleClientHttpRequestFactory(),
        Collections.singletonList(new LoggingClientHttpRequestInterceptor())
);
RestTemplate restTemplate = new RestTemplate(
        Arrays.asList(new MappingJackson2HttpMessageConverter()),
        new SimpleClientHttpRequestFactory(),
        Collections.singletonList(new LoggingClientHttpRequestInterceptor())
);
  1. 使用 RestTemplateBuilder

可以使用 RestTemplateBuilder 来创建 RestTemplate 实例,并通过配置,添加需要的 HttpMessageConverter、ClientHttpRequestFactory 和 Interceptor:

java
RestTemplate restTemplate = new RestTemplateBuilder()
        .additionalMessageConverters(new MappingJackson2HttpMessageConverter())
        .interceptors(new LoggingClientHttpRequestInterceptor())
        .build();
RestTemplate restTemplate = new RestTemplateBuilder()
        .additionalMessageConverters(new MappingJackson2HttpMessageConverter())
        .interceptors(new LoggingClientHttpRequestInterceptor())
        .build();

其中,LoggingClientHttpRequestInterceptor 是一个自定义的拦截器,用于输出请求和响应的日志。其他的 HttpMessageConverter 和 ClientHttpRequestFactory 可以根据具体的需求来选择添加。