中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Feign調用遠程HTTP服務

發布時間:2021-08-20 18:54:20 來源:億速云 閱讀:150 作者:chen 欄目:云計算

這篇文章主要講解了“怎么用Feign調用遠程HTTP服務”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“怎么用Feign調用遠程HTTP服務”吧!

Feign簡介

Feign是一種聲明式、模板化的HTTP客戶端。在Spring Cloud中使用Feign, 我們可以做到使用HTTP請求遠程服務時能與調用本地方法一樣的編碼體驗,開發者完全感知不到這是遠程方法,更感知不到這是個HTTP請求。比如:

@Autowired
private AdvertGropRemoteService service; // 遠程服務

public AdvertGroupVO foo(Integer groupId) {
    return service.findByGroupId(groupId); // 通過HTTP調用遠程服務
}

不嗶嗶了直接上代碼吧:

maven配置:

<!-- 使用Apache HttpClient替換Feign原生httpclient -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
        </dependency>
        <dependency>
            <groupId>com.netflix.feign</groupId>
            <artifactId>feign-httpclient</artifactId>
            <version>8.18.0</version>
        </dependency>        
        <dependency>
            <groupId>com.netflix.feign</groupId>
            <artifactId>feign-core</artifactId>
            <version>8.18.0</version>
        </dependency>
        <dependency>
            <groupId>com.netflix.feign</groupId>
            <artifactId>feign-gson</artifactId>
            <version>8.18.0</version>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.2</version>
        </dependency>

Feign在默認情況下使用的是JDK原生的URLConnection發送HTTP請求,沒有連接池,但是對每個地址會保持一個長連接,即利用HTTP的persistence connection 。我們可以用Apache的HTTP Client替換Feign原始的http client, 從而獲取連接池、超時時間等與性能息息相關的控制能力。Spring Cloud從Brixtion.SR5版本開始支持這種替換,首先在項目中聲明Apache HTTP Client和feign-httpclient依賴.

Feign定義:

import com.migr.common.ws.ResponseBean;
import feign.Param;
import feign.RequestLine;

/**
 * Created by Administrator on 2017/10/27.
 */

public interface AOranService{
    @RequestLine("POST /exec?m={m}&reqJson={reqJson}&token={token}")// get 提交
    ResponseBean findParentOrgan(@Param("m") String m, @Param("reqJson") String reqJson, @Param("token") String token);
}

如何調用:

        //這一段完全可以做聲工具類或者單例實現
        // http://base.dianxiaohuocy.net/api 為接口地址
        AOranService oranService = Feign.builder()
                .decoder(new GsonDecoder())
                .encoder(new GsonEncoder())
                .target(AOranService.class, "http://base.dianxiaohuocy.net/api");
        Map<String, String> reqMap = new HashMap<>();
        reqMap.put("vendorId", "3");
        reqMap.put("organCode", "10101");
        reqMap.put("organLevel", "2");

        String token = "H8DH9Snx9877SDER5667";
        String reqJson = JsonUtil.g.toJson(reqMap);
        // 以上
        
        // 以下是真正通過Feign調用接口的方法
        ResponseBean str = oranService.findParentOrgan("findParentOrgan", reqJson, token);

所調用的接口:

    @RequestMapping(value = "/exec")
    @ResponseBody
    public Object exec(@RequestParam(value = "m", required = true) String m,
                       @RequestParam(value = "reqJson", required = true) String reqJson,
                       @RequestParam(value = "token", required = true) String token){
// 內部實現完全沒必要關注
}

 

感謝各位的閱讀,以上就是“怎么用Feign調用遠程HTTP服務”的內容了,經過本文的學習后,相信大家對怎么用Feign調用遠程HTTP服務這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

澄江县| 保定市| 特克斯县| 二连浩特市| 郴州市| 广州市| 鲁甸县| 新建县| 乌兰浩特市| 大石桥市| 凤庆县| 内乡县| 九龙县| 琼中| 罗源县| 西畴县| 高雄县| 准格尔旗| 石屏县| 寿阳县| 无锡市| 敦化市| 马关县| 平武县| 纳雍县| 永川市| 汉川市| 平乐县| 宜阳县| 阳城县| 会理县| 宁化县| 江城| 屯昌县| 沂源县| 右玉县| 海南省| 时尚| 隆安县| 永宁县| 扬州市|