Spring的RestTemplate

Posted 敲代码的卡卡罗特

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring的RestTemplate相关的知识,希望对你有一定的参考价值。

Spring提供了一个RestTemplate模板工具类,对基于Http的客户端进行了封装,并且实现了对象与json的序列化和反序列化,非常方便。RestTemplate并没有限定Http的客户端类型,而是进行了抽象,目前常用的3种都有支持:

- HttpClient
- OkHttp
- JDK原生的URLConnection(默认的)

首先在项目中注册一个`RestTemplate`对象,可以在启动类位置注册:

@SpringBootApplication
public class HttpDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(HttpDemoApplication.class, args);
    }

    @Bean
    public RestTemplate restTemplate() {
        // 默认的RestTemplate,底层是走JDK的URLConnection方式。
        return new RestTemplate();
    }
}

在测试类中直接`@Autowired`注入:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = HttpDemoApplication.class)
public class HttpDemoApplicationTests {

    @Autowired
    private RestTemplate restTemplate;

    @Test
    public void httpGet() {
        User user = this.restTemplate.getForObject("http://localhost/hello", User.class);
        System.out.println(user);
    }
}

通过RestTemplate的getForObject()方法,传递url地址及实体类的字节码,RestTemplate会自动发起请求,接收响应,并且帮我们对响应结果进行反序列化。

以上是关于Spring的RestTemplate的主要内容,如果未能解决你的问题,请参考以下文章

Spring Resttemplate 异常处理

Spring/RestTemplate - PUT 实体到服务器

RestTemplate

RestTemplate

Spring RestTemplate实现服务间的远程调用完整代码示例

Spring - WebClient & RestTemplate