SpringCloud 中 RestTemplate的基本使用
-
将RestTemolate交给Spring管理
@Configuration public class BeanConfig { @Bean @LoadBalanced public RestTemplate getRestTemplate(){ return new RestTemplate(); } }
-
使用
@Autowired private RestTemplate restTemplate; public Object service3() { //获取服务信息 ServiceInstance myClient = loadBalancerClient.choose("MyClient"); //获取服务IP String host = myClient.getHost(); //获取服务端口 int port = myClient.getPort(); //构建URL String url1 = "http://" + host + ":" + port + "/hello"; //返回结果值 String forObject = restTemplate.getForObject(url1, String.class); System.out.println(forObject); //myclient是application-name,在url中小写 String url2 = "http://myclient/hello"; //返回结果对象 ResponseEntity<String> forEntity = restTemplate.getForEntity(url2, String.class); System.out.println(forEntity.getBody()); return "service3: " + forObject; }