最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringCloud?openfeign聲明式服務(wù)調(diào)用實(shí)現(xiàn)方法介紹

 更新時間:2022年12月07日 17:17:15   作者:幽默涵養(yǎng)miss u  
在springcloud中,openfeign是取代了feign作為負(fù)載均衡組件的,feign最早是netflix提供的,他是一個輕量級的支持RESTful的http服務(wù)調(diào)用框架,內(nèi)置了ribbon,而ribbon可以提供負(fù)載均衡機(jī)制,因此feign可以作為一個負(fù)載均衡的遠(yuǎn)程服務(wù)調(diào)用框架使用

一、介紹

OpenFeign是一種聲明式、模板化的HTTP客戶端(僅在Application Client中使用)(稱OpenFeign作用:聲明式服務(wù)調(diào)用)。聲明式調(diào)用是指,就像調(diào)用本地方法一樣調(diào)用遠(yuǎn)程方法,無需感知操作遠(yuǎn)程http請求。OpenFeign替換RestTemplate。

二、使用 

(1)導(dǎo)入依賴

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.3.12.RELEASE</version>
</parent>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Hoxton.SR12</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
</dependencies>

(2)在啟動類上添加掃描注解

/**
 * EnableFeignClients - 開啟Openfeign技術(shù)。讓spring cloud掃描Openfeign相關(guān)注解,
 * 生成動態(tài)代理實(shí)現(xiàn)對象。
 *  可選屬性 basePackages = {"feign接口所在包1", "feign接口所在包2"}
 *  默認(rèn)掃描當(dāng)前類型所在包,及所有子孫包。
 */
@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients(basePackages = {"com.bjsxt.feign"})
public class OpenFeignAppClientApp {
    public static void main(String[] args) {
        SpringApplication.run(OpenFeignAppClientApp.class, args);
    }
}

(3)編寫本地接口

/**
 * 定義接口,基于注解,實(shí)現(xiàn)聲明式遠(yuǎn)程服務(wù)調(diào)用。
 * 技術(shù)是OpenFeign。
 * 需要確定的事情:
 *  1. 訪問的遠(yuǎn)程服務(wù)名稱是什么。
 *  2. 訪問的遠(yuǎn)程服務(wù)具體地址是什么。
 *  3. 訪問的遠(yuǎn)程服務(wù)請求方式是什么。
 *  4. 訪問的遠(yuǎn)程服務(wù),參數(shù)是什么。
 *  5. 訪問的遠(yuǎn)程服務(wù),返回結(jié)果類型是什么。
 *
 * FeignClient - 代表當(dāng)前的接口是一個OpenFeign客戶端,要訪問遠(yuǎn)程的服務(wù)。
 *  具體的實(shí)現(xiàn)類對象,由spring cloud動態(tài)生成代理對象來實(shí)現(xiàn)。
 *  必要屬性: value - 要訪問的遠(yuǎn)程服務(wù)命名是什么。
 */
@FeignClient("application-service")
public interface AppServiceOpenfeignClient {
    /**
     * 定義方法。使用SpringMVC注解+方法定義,實(shí)現(xiàn)遠(yuǎn)程服務(wù)訪問規(guī)則定義。
     * 建議寫法: 找到要訪問的控制器。復(fù)制對應(yīng)的方法簽名即可。
     *
     * GetMapping - 約束了請求方式
     *  注解屬性value - 約束了請求的具體地址
     * 方法返回值 - 約束了遠(yuǎn)程服務(wù)返回結(jié)果類型
     * 方法參數(shù)表 - 約束了遠(yuǎn)程服務(wù)的請求參數(shù)
     */
    @GetMapping("/getNoParams")
    public String getNoParams();
    /**
     * post請求,無參數(shù)
     * @return
     */
    @PostMapping("/postNoParams")
    public String postNoParams();
}

(4)本地接口注意事項

形參需要添加對應(yīng)注解如@RequestParam,@RequestBody,@PathVariable等。

三、通訊優(yōu)化

(1)配置OpenFeign請求-應(yīng)答的GZIP壓縮

# 配置openfeign請求和應(yīng)答的gzip壓縮處理
feign:
  compression:
    request:
      enabled: true  # 開啟請求壓縮處理。默認(rèn)false
      min-request-size: 128  # 請求容量多少,開始壓縮。默認(rèn)2048字節(jié)
      mime-types: text/html, text/xml, text/plain, text/css, application/json # 請求頭content type是什么,做壓縮處理
    response:
      enabled: true # 開啟響應(yīng)壓縮處理。默認(rèn)false

(2)Tomcat服務(wù)器GZIP優(yōu)化配置

server:
  compression:
    enabled: true  # 是否開啟響應(yīng)壓縮處理。默認(rèn)false
    mime-types: text/html, text/xml, text/plain, text/css, text/javascript, application/javascript, application/json, application/xml # 響應(yīng)content type什么類型,做壓縮處理。
    min-response-size: 128  # 響應(yīng)容量多大,做壓縮處理。 默認(rèn)2048字節(jié)

到此這篇關(guān)于SpringCloud openfeign聲明式服務(wù)調(diào)用實(shí)現(xiàn)方法介紹的文章就介紹到這了,更多相關(guān)SpringCloud openfeign內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Maven學(xué)習(xí)----Maven安裝與環(huán)境變量配置教程

    Maven學(xué)習(xí)----Maven安裝與環(huán)境變量配置教程

    這篇文章主要給大家介紹了關(guān)于如何利用Maven入手Spring Boot第一個程序的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-06-06
  • Java黑盒測試之nextDate函數(shù)測試

    Java黑盒測試之nextDate函數(shù)測試

    這篇文章主要介紹了Java黑盒測試之nextDate函數(shù)測試,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)Java黑盒測試的小伙伴們有很大的幫助哦,需要的朋友可以參考下
    2021-05-05
  • Mybatis中使用in()查詢的方式詳解

    Mybatis中使用in()查詢的方式詳解

    當(dāng)參數(shù)有值,添加條件查詢,附帶一個字符串的in查詢,下面這篇文章主要給大家介紹了關(guān)于Mybatis中使用in()查詢的方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Java異常:java.net.UnknownHostException產(chǎn)生的原因和解決方案

    Java異常:java.net.UnknownHostException產(chǎn)生的原因和解決方案

    這篇文章主要給大家介紹了關(guān)于Java異常:java.net.UnknownHostException產(chǎn)生的原因和解決方案,這個異常是java.net包中的一部分,具體說它是類的一個實(shí)例,異常通常是由主機(jī)名無法解析為IP地址引起的,文中將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • Java設(shè)置Map過期時間的的幾種方法舉例詳解

    Java設(shè)置Map過期時間的的幾種方法舉例詳解

    本文詳細(xì)介紹了Java中使用輕量級緩存組件ExpiringMap以及Guava的LoadingCache緩存機(jī)制,ExpiringMap提供了Map自動過期、監(jiān)聽事件等功能,而LoadingCache提供了緩存回收、數(shù)據(jù)加載等高級功能,兩者為Java項目提供了有效的數(shù)據(jù)管理和緩存解決方案,需要的朋友可以參考下
    2024-10-10
  • 一文帶你了解如何正確使用MyBatisPlus

    一文帶你了解如何正確使用MyBatisPlus

    在本篇文章中,我們獎通過?MyBatis?Plus?來對一張表進(jìn)行?CRUD?操作,來看看是如何簡化我們開發(fā)的。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-12-12
  • SpringBoot 集成 ShedLock 分布式鎖的示例詳解

    SpringBoot 集成 ShedLock 分布式鎖的示例詳解

    ShedLock是一個在分布式環(huán)境中使用的定時任務(wù)框架,用于解決在分布式環(huán)境中的多個實(shí)例的相同定時任務(wù)在同一時間點(diǎn)重復(fù)執(zhí)行的問題,本文重點(diǎn)給大家介紹SpringBoot 分布式鎖ShedLock的相關(guān)知識,感興趣的朋友一起看看吧
    2021-08-08
  • Spring注解驅(qū)動之AOP功能測試

    Spring注解驅(qū)動之AOP功能測試

    這篇文章主要介紹了Spring注解驅(qū)動之AOP功能測試,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Java類的初始化順序的實(shí)現(xiàn)

    Java類的初始化順序的實(shí)現(xiàn)

    類的初始化過程是在類加載階段完成的,包括加載、驗(yàn)證、準(zhǔn)備、解析和初始化等步驟,本文主要介紹了Java類的初始化順序的實(shí)現(xiàn),感興趣的可以了解一下
    2023-12-12
  • SpringBoot @JsonDeserialize自定義Json序列化方式

    SpringBoot @JsonDeserialize自定義Json序列化方式

    這篇文章主要介紹了SpringBoot @JsonDeserialize自定義Json序列化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評論

叙永县| 台江县| 汝城县| 平泉县| 砚山县| 新津县| 阿拉善右旗| 民丰县| 离岛区| 华容县| 赤城县| 通城县| 科尔| 汕头市| 廊坊市| 龙里县| 墨江| 漳浦县| 南康市| 盱眙县| 五莲县| 锦屏县| 湘乡市| 昌宁县| 玛纳斯县| 伊宁县| 兴安盟| 渑池县| 济南市| 静海县| 岫岩| 旅游| 新宾| 金川县| 哈尔滨市| 堆龙德庆县| 韶山市| 苗栗县| 甘谷县| 雷山县| 石柱|