欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何使用RestTemplate和WebClient以及Feign

本篇文章給大家分享的是有關(guān)如何使用RestTemplate和WebClient以及Feign,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括夏津網(wǎng)站建設(shè)、夏津網(wǎng)站制作、夏津網(wǎng)頁(yè)制作以及夏津網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,夏津網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到夏津省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

十載的甘德網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都營(yíng)銷網(wǎng)站建設(shè)的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整甘德建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)從事“甘德網(wǎng)站設(shè)計(jì)”,“甘德網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

我們已經(jīng)學(xué)會(huì)如何使用Nacos來(lái)實(shí)現(xiàn)服務(wù)的注冊(cè)與發(fā)現(xiàn),同時(shí)也介紹如何通過(guò)LoadBalancerClient接口來(lái)獲取某個(gè)服務(wù)的具體實(shí)例,并根據(jù)實(shí)例信息來(lái)發(fā)起服務(wù)接口消費(fèi)請(qǐng)求。但是這樣的做法需要我們手工的去編寫服務(wù)選取、鏈接拼接等繁瑣的工作,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)非常的不友好。所以接下來(lái),我們?cè)賮?lái)看看除此之外,還支持哪些其他的服務(wù)消費(fèi)方式。

使用RestTemplate

在之前的例子中,已經(jīng)使用過(guò)RestTemplate來(lái)向服務(wù)的某個(gè)具體實(shí)例發(fā)起HTTP請(qǐng)求,但是具體的請(qǐng)求路徑是通過(guò)拼接完成的,對(duì)于開(kāi)發(fā)體驗(yàn)并不好。但是,實(shí)際上,在Spring Cloud中對(duì)RestTemplate做了增強(qiáng),只需要稍加配置,就能簡(jiǎn)化之前的調(diào)用方式。

@EnableDiscoveryClient
@SpringBootApplication
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

    @Slf4j
    @RestController
    static class TestController {

        @Autowired
        RestTemplate restTemplate;

        @GetMapping("/test")
        public String test() {
            String result = restTemplate.getForObject("http://alibaba-nacos-discovery-server/hello?name=didi", String.class);
            return "Return : " + result;
        }
    }

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

}

可以看到,在定義RestTemplate的時(shí)候,增加了@LoadBalanced注解,而在真正調(diào)用服務(wù)接口的時(shí)候,原來(lái)host部分是通過(guò)手工拼接ip和端口的,直接采用服務(wù)名的時(shí)候來(lái)寫請(qǐng)求路徑即可。在真正調(diào)用的時(shí)候,Spring Cloud會(huì)將請(qǐng)求攔截下來(lái),然后通過(guò)負(fù)載均衡器選出節(jié)點(diǎn),并替換服務(wù)名部分為具體的ip和端口,從而實(shí)現(xiàn)基于服務(wù)名的負(fù)載均衡調(diào)用。

使用WebClient

WebClient是Spring 5中最新引入的,可以將其理解為reactive版的RestTemplate。下面舉個(gè)具體的例子,它將實(shí)現(xiàn)與上面RestTemplate一樣的請(qǐng)求調(diào)用:

@EnableDiscoveryClient
@SpringBootApplication
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

    @Slf4j
    @RestController
    static class TestController {

        @Autowired
        private WebClient.Builder webClientBuilder;

        @GetMapping("/test")
        public Mono<String> test() {
            Mono<String> result = webClientBuilder.build()
                    .get()
                    .uri("http://alibaba-nacos-discovery-server/hello?name=didi")
                    .retrieve()
                    .bodyToMono(String.class);
            return result;
        }
    }

    @Bean
    @LoadBalanced
    public WebClient.Builder loadBalancedWebClientBuilder() {
        return WebClient.builder();
    }

}

可以看到,在定義WebClient.Builder的時(shí)候,也增加了@LoadBalanced注解,其原理與之前的RestTemplate時(shí)一樣的。關(guān)于WebClient的完整例子也可以通過(guò)在文末的倉(cāng)庫(kù)中查看。

使用Feign

上面介紹的RestTemplate和WebClient都是Spring自己封裝的工具,下面介紹一個(gè)Netflix OSS中的成員,通過(guò)它可以更方便的定義和使用服務(wù)消費(fèi)客戶端。下面也舉一個(gè)具體的例子,其實(shí)現(xiàn)內(nèi)容與上面兩種方式結(jié)果一致:

第一步:在pom.xml中增加openfeign的依賴:

@EnableDiscoveryClient
@SpringBootApplication
@EnableFeignClients
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

    @Slf4j
    @RestController
    static class TestController {

        @Autowired
        Client client;

        @GetMapping("/test")
        public String test() {
            String result = client.hello("didi");
            return "Return : " + result;
        }
    }


    @FeignClient("alibaba-nacos-discovery-server")
    interface Client {

        @GetMapping("/hello")
        String hello(@RequestParam(name = "name") String name);

    }

}

這里主要先通過(guò)@EnableFeignClients注解開(kāi)啟掃描Spring Cloud Feign客戶端的功能;然后又創(chuàng)建一個(gè)Feign的客戶端接口定義。使用@FeignClient注解來(lái)指定這個(gè)接口所要調(diào)用的服務(wù)名稱,接口中定義的各個(gè)函數(shù)使用Spring MVC的注解就可以來(lái)綁定服務(wù)提供方的REST接口,比如下面就是綁定alibaba-nacos-discovery-server服務(wù)的/hello接口的例子。最后,在Controller中,注入了Client接口的實(shí)現(xiàn),并調(diào)用hello方法來(lái)觸發(fā)對(duì)服務(wù)提供方的調(diào)用。

深入思考

如果之前已經(jīng)用過(guò)Spring Cloud的讀者,肯定會(huì)這樣的感受:不論我用的是RestTempalte也好、還是用的WebClient也好,還是用的Feign也好,似乎跟我用不用Nacos沒(méi)啥關(guān)系?我們?cè)谥敖榻BEureka和Consul的時(shí)候,也都是用同樣的方法來(lái)實(shí)現(xiàn)服務(wù)調(diào)用的,不是嗎?

確實(shí)是這樣,對(duì)于Spring Cloud老手來(lái)說(shuō),就算我們更換了Nacos作為新的服務(wù)注冊(cè)中心,其實(shí)對(duì)于我們應(yīng)用層面的代碼是沒(méi)有影響的。那么為什么Spring Cloud可以帶給我們這樣的完美編碼體驗(yàn)?zāi)兀繉?shí)際上,這完全歸功于Spring Cloud Common的封裝,由于在服務(wù)注冊(cè)與發(fā)現(xiàn)、客戶端負(fù)載均衡等方面都做了很好的抽象,而上層應(yīng)用方面依賴的都是這些抽象接口,而非針對(duì)某個(gè)具體中間件的實(shí)現(xiàn)。所以,在Spring Cloud中,我們可以很方便的去切換服務(wù)治理方面的中間件。

以上就是如何使用RestTemplate和WebClient以及Feign,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

本文標(biāo)題:如何使用RestTemplate和WebClient以及Feign
本文URL:http://aaarwkj.com/article30/iijpso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、品牌網(wǎng)站制作、網(wǎng)站改版、網(wǎng)站制作、App設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
亚洲欧美国产精品久久久| 日本午夜诱惑在线观看| 久久久亚洲福利精品午夜| 国产精品欧美日韩精品| 欧美两性色一区二区三区| 最新国产av网址大全| 久久精品高潮999久久久| 国产丝袜在线福利观看| 日韩av天堂免费网站| 人妻免费精品久久一区| 久久久久久亚洲精品少妇| 欧美日韩国产精品久久乐播| 欧美精品一区二区三区狠狠| 欧美激情一区二区三区蜜桃| 亚洲乱码在线中文字幕| 六十路人妻一区二区三区| 亚洲国产a级一区二区| 成人黄色三级免费网站| 好吊妞视频这里只有精| 亚洲精品成人久久国产| 青青草青青草在线观看视频| 精品国产不卡在线观看| 日韩一级免费高清黄片| 美国一级二级三级黄片| 老熟妇奂伦一区二区三区| 国产精品妇女一二三区| 午夜欧美日韩精品久久久| 亚洲欧洲日本在线天堂| 日本在线高清精品人妻| 亚洲午夜激情免费试看| 我的极品小姨在线观看| av中文在线免费观看| 亚洲三级黄片免费播放| 一区二区在线视频国产| 日本在线观看免费高清| 亚洲欧美中文日韩二区一区| 亚洲午夜精品久久久天堂| 神马久久午夜免费福利 | 亚洲激情欧美激情在线| 日韩特级黄片在线免费观看| 粉嫩一区二区三区av|