日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Java使用OpenFeign管理多個(gè)第三方服務(wù)調(diào)用

瀏覽:195日期:2022-08-10 14:31:55
目錄背景應(yīng)用maven依賴配置和服務(wù)聲明服務(wù)地址配置第三方服務(wù)配置接口聲明和使用小結(jié)背景

最近開發(fā)了一個(gè)統(tǒng)一調(diào)度類的項(xiàng)目,需要依賴多個(gè)第三方服務(wù),這些服務(wù)都提供了HTTP接口供我調(diào)用。

Java使用OpenFeign管理多個(gè)第三方服務(wù)調(diào)用

組件架構(gòu)

服務(wù)多、接口多,如何進(jìn)行第三方服務(wù)管理和調(diào)用就成了問題。

常用的服務(wù)間調(diào)用往往采用zk、Eureka等注冊(cè)中心進(jìn)行服務(wù)管理(SpringBoot常使用SpringCloud)。OpenFeign也是SpringCloud的解決方案之一。我們單獨(dú)使用OpenFeign, 無需對(duì)原有第三方服務(wù)進(jìn)行改動(dòng),本服務(wù)開發(fā)時(shí)的引入也很輕量。

下面給出我的用法。

應(yīng)用maven依賴

引入maven依賴:

<dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-core</artifactId> <version>10.2.3</version> </dependency> <dependency> <groupId>io.github.openfeign</groupId> <artifactId>feign-gson</artifactId> <version>10.2.3</version> </dependency> <dependency> <groupId>io.github.openfeign.form</groupId> <artifactId>feign-form</artifactId> <version>3.8.0</version> </dependency> <dependency> <groupId>io.github.openfeign.form</groupId> <artifactId>feign-form-spring</artifactId> <version>3.8.0</version> </dependency>

其中,form相關(guān)引入是為了解決ContentType為application/x-www-form-urlencoded和multipart/form-data的編碼問題。

配置和服務(wù)聲明

第三方服務(wù)的地址通過配置來注入。

服務(wù)地址配置

ThirdpartServiceConfig.java

@Data@Component@ConfigurationProperties(prefix = 'thirdpart-service')public class ThirdpartServiceConfig { private String serviceA; private String serviceB; private String serviceC;}

服務(wù)配置(超時(shí)時(shí)間配置等也可以寫在這里) application.yaml

thirdpart-service: serviceA: http://****:***/ serviceB: http://****:***/ serviceC: http://****:***/第三方服務(wù)配置

因?yàn)槁暶鞣椒ㄒ恢拢允÷粤硕鄠€(gè)第三方聲明。 ThirdPartClientConfig.java

@Configurationpublic class ThirdParttClientConfig { @Resource private ThirdpartServiceConfig thirdpartServiceConfig; @Bean public ServiceAClient serviceAClient() {return Feign.builder() .encoder(new FormEncoder(new GsonEncoder())) .decoder(new GsonDecoder()) .target(ServiceAClient.class, thirdpartServiceConfig.getServiceA()); }}接口聲明和使用

完成了服務(wù)的聲明和服務(wù)的配置之后,就可以進(jìn)行服務(wù)接口的聲明了。具體聲明方法可以參看OpenFeign文檔:# 翻譯: Spring Cloud Feign使用文檔

下面給出使用示例:

GET請(qǐng)求(feign可直接將返回的結(jié)果反序列化為本服務(wù)中定義的POJO)

@RequestLine('GET testGet?a={a}&b={b}')ServiceResp testGet(@Param('a') String a,@Param('b')String b);

GET 下載使用feign.Response接收請(qǐng)求結(jié)果

@RequestLine('GET export?exportId={exportId}')Response exportFromServiceA(@Param('exportId')String exportId);

@Resourceprivate ServiceAClient serviceAClient ;// 導(dǎo)出方法public void export(exportId) { Response serviceResponse = serviceserviceAClient.exportFromServiceA(exportId); Response.Body body = serviceResponse.body(); try(InputStream inputStream = body.asInputStream();// 處理獲取到的inputStream } catch (IOException e) { log.error('導(dǎo)出發(fā)生異常',e);}

POST application/json'

@RequestLine('POST /save') @Headers('Cofntent-Type: application/json') ServiceResp saveEntity(EntityPOJO entityPOJO);

POST form

@RequestLine('POST uqa/repo/qa/batch') @Headers('Content-Type:multipart/form-data') ServiceResp uploadFile(@Param('id')String id, @Param('batch_file') File file); 注意:除了file類型,其他參數(shù)會(huì)被序列化為String,所以若第三方接口參數(shù)的值為POJO(或Map),可能會(huì)出錯(cuò)。 對(duì)于POJO參數(shù),若第三方參數(shù)名含有Java中不合法的屬性字符(如 ”-“,”#“,”.“等),可使用注解進(jìn)行序列化時(shí)的轉(zhuǎn)化。由于聲明Feign Client時(shí)使用的encoder是Gson,所以使用如下注解:

@SerializedName(value='aaa-bbb') private String aaaBbb;

如果使用的是其他序列化工具,改為對(duì)應(yīng)的注解即可。

小結(jié)

使用聲明式的第三方和接口寫法,基本覆蓋了請(qǐng)求第三方接口的需求,也易于拓展和管理。

我計(jì)劃在后續(xù)添加統(tǒng)一的鑒權(quán)、日志打印和異常捕獲處理功能,使依賴組件引入的風(fēng)險(xiǎn)更為可控。OpenFeign幫我們實(shí)現(xiàn)了服務(wù)聲明、接口聲明、HTTP請(qǐng)求發(fā)送和結(jié)果處理等邏輯,在項(xiàng)目需要調(diào)用多個(gè)第三方服務(wù)時(shí)可以使用。

到此這篇關(guān)于Java使用OpenFeign管理多個(gè)第三方服務(wù)調(diào)用的文章就介紹到這了,更多相關(guān)Java 第三方服務(wù)調(diào)用內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美aa在线视频| 日精品一区二区三区| 欧美在线资源| 日韩精品一二区| 国产 日韩 欧美 综合 一区| 亚洲综合精品| 欧美午夜精彩| 久久婷婷av| 欧美午夜不卡| 国产农村妇女精品一二区| 米奇777超碰欧美日韩亚洲| 国产不卡人人| 91日韩免费| 香蕉成人av| av一区二区高清| 久久国产精品久久久久久电车| 石原莉奈在线亚洲三区| 日日夜夜免费精品视频| 国产欧美88| 久久久久久一区二区| 亚洲夜间福利| 福利一区二区| 天堂网在线观看国产精品| 尤物在线精品| 亚洲精品乱码日韩| 国产欧美日韩精品一区二区三区 | 久久亚洲影院| 亚洲+小说+欧美+激情+另类| 青草综合视频| 精品国产精品国产偷麻豆 | 久久久久99| 亚洲欧美久久久| 日本三级亚洲精品| 成人在线视频免费看| 成人免费电影网址| 日韩中文字幕亚洲一区二区va在线| 日本综合视频| 卡一精品卡二卡三网站乱码| 成人国产精品久久| 99pao成人国产永久免费视频| 午夜久久av| 激情久久一区二区| 午夜久久美女| 国产精品色在线网站| 成人在线网站| 亚洲va久久| 日韩毛片视频| 中文字幕免费一区二区| 久久精品一本| 不卡在线一区| 国产调教精品| 亚洲夜间福利| 欧美在线观看天堂一区二区三区| 国产精品黄色片| 亚洲二区精品| 91麻豆精品激情在线观看最新| 韩国久久久久久| 亚洲资源网站| 日韩国产一区二区| 日韩精品视频网站| 久久久国产亚洲精品| 日韩av影院| 久久久影院免费| 日本亚洲最大的色成网站www | 国产精品亚洲欧美日韩一区在线 | 国产一区二区三区四区五区传媒| 亚洲激情国产| 国产精品三级| 香蕉国产精品| 精品视频99| 中文字幕免费精品| 色婷婷久久久| 国产精品一区二区三区美女| 黄色亚洲在线| 国产精品扒开腿做爽爽爽软件| 日韩视频在线一区二区三区 | 国产精品网在线观看| 国产午夜久久| 9999国产精品| 青青草91久久久久久久久| 婷婷综合五月| 国产一区二区三区亚洲综合| 亚洲一区导航| 影视先锋久久| 免费亚洲婷婷| 日韩欧美久久| 9色国产精品| 在线观看精品| 久久中文字幕一区二区| 中文字幕日韩高清在线| 久久影视一区| 三上亚洲一区二区| 国产精品chinese| 亚洲精品第一| 欧美日韩国产综合网| 福利精品在线| 国产精品乱战久久久| 在线看片一区| 在线视频日韩| 久久亚洲专区| 日本精品在线中文字幕| 丰满少妇一区| 美女av一区| 国产精品高清一区二区| 亚洲精品伊人| 一区二区三区国产盗摄| 亚洲激情二区| 偷拍欧美精品| 亚洲午夜久久久久久尤物| 在线人成日本视频| 日韩av免费大片| 国产一区二区三区不卡视频网站 | 精品国产亚洲一区二区在线观看| 日本h片久久| 日韩一区二区三区精品视频第3页| 9色国产精品| 在线 亚洲欧美在线综合一区| 激情综合亚洲| 99精品在线| 国产精品福利在线观看播放| 亚洲成人三区| 成人欧美一区二区三区的电影| 婷婷六月综合| 99成人在线| 久久亚洲精品中文字幕| 亚洲一区激情| 国产拍在线视频| 精品精品国产三级a∨在线| 日韩国产一二三区| 亚洲精品动态| 欧美日韩一区二区三区四区在线观看 | 成人久久一区| 成人久久一区| 久久精品不卡| 亚洲福利一区| 在线观看免费一区二区| 亚洲综合不卡| 中文字幕一区二区三区日韩精品| 免费观看在线综合| 婷婷综合一区| 国产亚洲一卡2卡3卡4卡新区| 久久国产欧美日韩精品| 日韩va欧美va亚洲va久久| 日韩av资源网| 麻豆国产精品777777在线| 另类欧美日韩国产在线| 精品美女视频| 丝袜美腿一区| 国产一区91| 日本麻豆一区二区三区视频| 国产精品黄网站| 日韩黄色大片网站| 欧美一级专区| 国产日韩三级| 日韩欧美国产精品综合嫩v| 久久国产成人午夜av影院宅| 在线视频亚洲| 国产精品伦一区二区| 日韩中文欧美在线| 亚洲一区观看| 国模大尺度视频一区二区| 久久国产精品免费一区二区三区| 99久久亚洲精品| 欧美一级一区| 国产精品v亚洲精品v日韩精品| 成人影视亚洲图片在线| 在线日韩一区| 日韩高清电影免费| 精品视频高潮| 国产免费成人| 国产经典一区| 久久精品二区三区| 亚洲欧洲午夜| 日韩av一区二区在线影视| 荡女精品导航| 亚洲欧美日韩综合国产aⅴ| 久久国产生活片100| 91看片一区| 亚洲精品福利| 亚洲伦乱视频| 91嫩草精品| 欧美影院三区| 国产探花一区| 久久精品动漫| 91亚洲精品视频在线观看| 日韩三区免费| 欧美日韩va| 久久裸体视频| 国产亚洲久久| 欧美日韩国产一区精品一区| 国产精品日韩精品在线播放| 免费观看不卡av| 国产精品久久久久77777丨| 国产高清久久| 久久久久伊人| 亚洲精品无吗| 欧美中文字幕一区二区| 国产剧情一区| 久久亚洲视频| 九色porny丨国产首页在线|