RestTemplate の 3 つの使用法の紹介 (コード)

不言
リリース: 2018-10-25 15:47:28
転載
3659 人が閲覧しました

この記事では RestTemplate (コード) の 3 つの使用方法を紹介します。必要な方は参考にしていただければ幸いです。

準備

サーバー側で共通APIを使用しています

@RestController
public class ServerController {

    @GetMapping("/msg")
    public String msg(){
        return "this is product' msg";
    }

}
ログイン後にコピー

最初の方法

restTemplateを直接使用してURLを記述します

@Slf4j
@RestController
public class ClientController {

    @GetMapping("/getProductMsg")
    public String getProductMsg(){
        // 1、第一种方式(直接使用restTemplate,url写死)
        RestTemplate restTemplate = new RestTemplate();
        String response = restTemplate.getForObject("http://localhost:9082/msg",String.class);
        log.info("response={}",response);
        return response;
    }

}
ログイン後にコピー

2 番目の方法

2 番目の方法 (loadBalancerClient を使用してアプリケーション名から URL を取得し、restTemplate を使用します)
@Slf4j
@RestController
public class ClientController {

    @Autowired
    private LoadBalancerClient loadBalancerClient;

    @GetMapping("/getProductMsg")
    public String getProductMsg(){

        //2、第二种方式(利用loadBalancerClient通过应用名获取url,然后再使用restTemplate)
        ServiceInstance serviceInstance = loadBalancerClient.choose("PRODUCT");
        String url = String.format("http://%s:%s",serviceInstance.getHost(),serviceInstance.getPort()) + "/msg";
        RestTemplate restTemplate = new RestTemplate();
        String response = restTemplate.getForObject(url,String.class);

        log.info("response={}",response);
        return response;
    }

}
ログイン後にコピー

3 番目の方法

3 番目の方法メソッド (@LoadBalanced を使用すると、restTemplate でアプリケーション名を使用できます)
@Component
public class RestTemplateConfig {

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

}
ログイン後にコピー
@Slf4j
@RestController
public class ClientController {

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/getProductMsg")
    public String getProductMsg(){

        //3、第三种方式(利用@LoadBalanced,可再restTemplate里使用应用名字)
        String response = restTemplate.getForObject("http://PRODUCT/msg",String.class);

        log.info("response={}",response);
        return response;
    }

}
ログイン後にコピー

以上がRestTemplate の 3 つの使用法の紹介 (コード)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:segmentfault.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!