SpringCloud - RestTemplate 的三种使用方式

1. 直接使用

RestTemplate restTemplate = new RestTemplate();
String result = restTemplate.getForObject("http://localhost:8761/order", String.class);

2.使用 LoadBalancerClient 获取服务地址

    @Autowired
    LoadBalancerClient loadBalancerClient;

    @GetMapping
    public String getOrder()
    {
        RestTemplate template = new RestTemplate();

        ServiceInstance instance = loadBalancerClient.choose("ORDER");
        String url = instance.getHost();
        int port = instance.getPort();

        String result = template.getForObject(url + ":" + port + "/order", String.class);
        return result;
    }

 

3. 使用 @LoadBalanced 注解

    1.RestTemplate 注解为bean, 并加上 @LoadBalanced
    @Bean
    @LoadBalanced
    RestTemplate restTemplate()
    {
        return new RestTemplate();
    }

2. 注入 @Autowired RestTemplate template;
3. 使用 @GetMapping
public String getOrder() { String result = template.getForObject("http://ORDER/order", String.class); return result; }

   ORDER 为注册的服务名

 

posted @ 2018-11-20 16:35  王不惑  阅读(851)  评论(0编辑  收藏  举报