springboot中restTemplate通訊的三種方式

@Autowired
    private LoadBalancerClient loadBalancerClient;

    @Autowired
   // private RestTemplate restTemplate;

    /**
     * resttemplate 三種調用方法
     *
     * @return
     */
    @RequestMapping
    public String Test() {
        //resttemplate 三種調用方法

        //第一種方式(直接使用restTemplate,url寫死)
//        RestTemplate restTemplate = new RestTemplate();
//        String response = restTemplate.getForObject("http://localhost:8080/msg", String.class);
        //第二種方式(利用loadBalancerClient通過應用獲取url,然後再使用restTemplate)
        RestTemplate restTemplate = new RestTemplate();
        ServiceInstance serviceInstance = loadBalancerClient.choose("服務名");
        String url = String.format("http://%s:%s", serviceInstance.getHost(), serviceInstance.getPort(), "/msg");
        String response = restTemplate.getForObject(url, String.class);
        //第三種方式(利用@LoadBalanced,可在restTemplate裏使用應用的名字)
       //String response = restTemplate.getForObject("http://localhost:8080/msg", String.class);
        return response;
    }

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate (){
        return new RestTemplate();
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章