成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

Java使用OpenFeign管理多個第三方服務調用

瀏覽:160日期:2022-08-10 14:31:55
目錄背景應用maven依賴配置和服務聲明服務地址配置第三方服務配置接口聲明和使用小結背景

最近開發了一個統一調度類的項目,需要依賴多個第三方服務,這些服務都提供了HTTP接口供我調用。

Java使用OpenFeign管理多個第三方服務調用

組件架構

服務多、接口多,如何進行第三方服務管理和調用就成了問題。

常用的服務間調用往往采用zk、Eureka等注冊中心進行服務管理(SpringBoot常使用SpringCloud)。OpenFeign也是SpringCloud的解決方案之一。我們單獨使用OpenFeign, 無需對原有第三方服務進行改動,本服務開發時的引入也很輕量。

下面給出我的用法。

應用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相關引入是為了解決ContentType為application/x-www-form-urlencoded和multipart/form-data的編碼問題。

配置和服務聲明

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

服務地址配置

ThirdpartServiceConfig.java

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

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

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

因為聲明方法一致,所以省略了多個第三方聲明。 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()); }}接口聲明和使用

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

下面給出使用示例:

GET請求(feign可直接將返回的結果反序列化為本服務中定義的POJO)

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

GET 下載使用feign.Response接收請求結果

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

@Resourceprivate ServiceAClient serviceAClient ;// 導出方法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('導出發生異常',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類型,其他參數會被序列化為String,所以若第三方接口參數的值為POJO(或Map),可能會出錯。 對于POJO參數,若第三方參數名含有Java中不合法的屬性字符(如 ”-“,”#“,”.“等),可使用注解進行序列化時的轉化。由于聲明Feign Client時使用的encoder是Gson,所以使用如下注解:

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

如果使用的是其他序列化工具,改為對應的注解即可。

小結

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

我計劃在后續添加統一的鑒權、日志打印和異常捕獲處理功能,使依賴組件引入的風險更為可控。OpenFeign幫我們實現了服務聲明、接口聲明、HTTP請求發送和結果處理等邏輯,在項目需要調用多個第三方服務時可以使用。

到此這篇關于Java使用OpenFeign管理多個第三方服務調用的文章就介紹到這了,更多相關Java 第三方服務調用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产婷婷色一区二区三区四区| 日韩一区二区三区精品视频| 国产精品v欧美精品∨日韩| 国产成人免费视频一区| 欧美一级精品大片| 精品久久99ma| 久久久精品2019中文字幕之3| 欧美成人综合网站| 久久精品一区八戒影视| 国产精品女主播av| 亚洲人精品午夜| 亚洲成精国产精品女| 亚洲福利电影网| 免费av成人在线| 精品一区二区三区免费观看| 国产成人一区二区精品非洲| youjizz久久| 久久综合久久综合九色| 欧美丝袜第三区| 欧美性xxxxxxxx| 日韩一区二区三区三四区视频在线观看 | 久久精品欧美一区二区三区不卡| 亚洲精品一区在线观看| 国产欧美日韩亚州综合| 亚洲男人的天堂av| 日本欧美久久久久免费播放网| 九色综合国产一区二区三区| 国产91丝袜在线播放九色| 欧美福利一区| 亚洲欧美视频一区二区三区| 欧美日韩日日摸| 日本一区二区三级电影在线观看 | 国产精品久久777777| 国产精品福利一区| 欧美区视频在线观看| 久久久精品tv| 偷拍与自拍一区| 国产成人aaa| 亚洲作爱视频| 97se亚洲国产综合自在线不卡| 日韩一级网站| 亚洲日本va午夜在线电影| 午夜精品久久久久影视| 成人综合婷婷国产精品久久 | 欧美高清精品3d| 国产精品久久久久久久岛一牛影视| 亚洲高清在线精品| 国产精品久久久久毛片软件| 蜜桃视频在线一区| 欧美日韩一区综合| 欧美二区三区的天堂| 亚洲男人的天堂av| 豆国产96在线|亚洲| 亚洲欧美视频一区二区三区| 久久婷婷成人综合色| 日韩精彩视频在线观看| 欧美.日韩.国产.一区.二区| 欧美性淫爽ww久久久久无| 国产精品成人网| 国产欧美一二三区| 精品一区二区久久| 国产精品一区视频| 久久综合色8888| 国模冰冰炮一区二区| 国产精品久久久久久久久久妞妞| 日韩欧美国产一区二区在线播放| 亚洲h精品动漫在线观看| 91蝌蚪国产九色| 日韩午夜中文字幕| 五月天亚洲精品| 亚洲福利久久| 国产女同性恋一区二区| 国产精品一区久久久久| 一本色道亚洲精品aⅴ| 亚洲婷婷国产精品电影人久久| 成人一区二区三区在线观看 | 亚洲午夜免费电影| 欧美日韩在线精品| 精品欧美一区二区在线观看| 久久66热re国产| 久久一区激情| 一区二区三区四区中文字幕| 国内在线观看一区二区三区| 久久尤物电影视频在线观看| 国产美女精品在线| 欧美私人免费视频| 免费精品视频在线| 在线观看精品一区| 视频在线在亚洲| 色欧美片视频在线观看| 亚洲国产成人高清精品| 国产亚洲精品久久飘花| 亚洲精品欧美综合四区| 国产综合精品| 亚洲色图欧洲色图婷婷| 韩国自拍一区| 亚洲天堂av老司机| aa级大片欧美三级| 亚洲国产乱码最新视频| 欧美一级视频| 日韩精品视频网站| 秋霞午夜av一区二区三区| 亚洲h精品动漫在线观看| 中文国产一区| 亚洲午夜一区二区| 老司机午夜精品视频| 亚洲一区二区三区四区中文字幕| 亚洲看片一区| 午夜久久久影院| 欧美专区在线观看一区| 欧美变态tickle挠乳网站| 国产欧美日本| 一区二区高清在线| 久久午夜激情| 国产一区二区女| 26uuu色噜噜精品一区二区| 亚洲美女精品一区| 一本一本大道香蕉久在线精品 | 91老师片黄在线观看| 国产欧美久久久精品影院| 亚洲激情另类| 在线成人高清不卡| 99久久精品免费看国产免费软件| 欧美一区二区三级| 不卡av在线免费观看| 国产欧美久久久精品影院| 亚洲经典一区| 热久久免费视频| 欧美电影免费观看高清完整版在线 | 成人美女在线视频| 中文字幕一区二区不卡| 久久不射2019中文字幕| 激情综合网天天干| 久久人人爽人人爽| 亚洲深夜影院| 韩国三级中文字幕hd久久精品| 欧美一级高清片在线观看| 成人精品小蝌蚪| 中文字幕亚洲欧美在线不卡| 国产精品美女黄网| 国精产品一区一区三区mba桃花| 久久久久久电影| 免费视频久久| 风间由美中文字幕在线看视频国产欧美| 国产丝袜美腿一区二区三区| 另类激情亚洲| 91香蕉视频在线| 五月综合激情婷婷六月色窝| 91精品国产综合久久福利软件| 激情婷婷欧美| 国内精品久久久久影院薰衣草| 国产精品区一区二区三区| 91黄色激情网站| 欧美特黄a级高清免费大片a级| 日韩精品一卡二卡三卡四卡无卡| 精品国产免费久久 | 亚洲午夜国产一区99re久久| 日韩欧美一卡二卡| 国产伦精品一区二区三区高清版| 国产精品夜夜爽| 亚洲第一成年网| 欧美激情一区二区三区蜜桃视频| 久久久福利视频| 欧美日韩一区二区视频在线观看| 激情综合网最新| 亚洲成a人片在线观看中文| 精品sm在线观看| 欧美三级电影网| 亚洲欧美日韩一区在线观看| 99在线精品免费| 极品少妇xxxx偷拍精品少妇| 一个色在线综合| 国产精品素人一区二区| 日韩女同互慰一区二区| 日本韩国欧美在线| 久久美女艺术照精彩视频福利播放| 中文在线不卡| 欧美精品国产一区| 国产91精品一区二区麻豆网站| 午夜精品一区二区三区电影天堂| 中文字幕在线观看一区| 久久日韩粉嫩一区二区三区| 制服丝袜亚洲色图| 欧美私人免费视频| 色婷婷久久久亚洲一区二区三区 | 国产精品网曝门| 精品国产乱码久久久久久闺蜜| 欧美喷潮久久久xxxxx| 日本韩国欧美一区| 亚洲一区免费看| 亚洲三级影院| 亚洲青涩在线| 亚洲黄页一区| 亚洲第一福利视频在线| 亚洲午夜精品在线| 亚洲午夜电影网| 午夜久久福利影院| 亚洲成人动漫av| 午夜久久久影院| 欧美一区二区在线免费观看|