springboot中restTemplate通讯的三种方式

需要学习视频资料请加qq 1686763368 

@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();
    }

 

 

 

你可能感兴趣的:(java,spring,springboot)