1. Spring提供了一个RestTemplate模板工具类,对基于Http的客户端进行了封装,并且实现了对象与json的序列化和反序列化,非常方便。RestTemplate并没有限定Http的客户端类型,而是进行了抽象,目前常用的3种都有支持:
- HttpClient
- OkHttp
- JDK原生的URLConnection(默认的)
2. RestTemplate 使用步骤
2.1 首先在项目中注册一个`RestTemplate`对象,可以在启动类位置注册:
package com.guo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@EnableDiscoveryClient
public class EurekaConsumer2Application {
public static void main(String[] args) {
SpringApplication.run(EurekaConsumer2Application.class, args);
}
@Bean
RestTemplate restTemplate() {
return new RestTemplate();
}
}
2.2 在controller类中直接`@Autowired`注入:
package com.guo.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@RestController
public class GetUserController {
@Autowired
RestTemplate restTemplate;
@RequestMapping("/user")
public String userString() {
String str = restTemplate.getForObject("http://localhost:9081/getUser", String.class);
return str;
}
}