版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lovelovelovelovelo/article/details/86748732
方法 1:
写死url
RestTemplate restTemplate = new RestTemplate();
ResponseType response = restTemplate.getForObject(url,ResponseType);
缺点:
url要写死,在不确定url或者多个url的情况下有问题
方法2:
使用LoadBalancerClient根据服务id获取url
@Autowired
LoadBalancerClient loadBalanceClient;
ServiceInstance serviceInstance = loadBalanceClient.choose(serviceId);
String url = String.format("http:%s:%s",serviceInstance.getHost(),serviceInstance.getPort());
ResponseType response = restTemplate.getForObject(url,ResponseType);
方法3(推荐使用):
将RestTemplate作为Bean引入
@Component
public class RestTemplateConfig{
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
}
@Autowired
RestTemplate restTemplate;
ResponseType response = restTemplate.getForObject("http://serviceId",ResponseType);