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

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

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

瀏覽:192日期: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等注冊中心進(jìn)行服務(wù)管理(SpringBoot常使用SpringCloud)。OpenFeign也是SpringCloud的解決方案之一。我們單獨(dú)使用OpenFeign, 無需對原有第三方服務(wù)進(jìn)行改動,本服務(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請求(feign可直接將返回的結(jié)果反序列化為本服務(wù)中定義的POJO)

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

GET 下載使用feign.Response接收請求結(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ù)會被序列化為String,所以若第三方接口參數(shù)的值為POJO(或Map),可能會出錯(cuò)。 對于POJO參數(shù),若第三方參數(shù)名含有Java中不合法的屬性字符(如 ”-“,”#“,”.“等),可使用注解進(jìn)行序列化時(shí)的轉(zhuǎn)化。由于聲明Feign Client時(shí)使用的encoder是Gson,所以使用如下注解:

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

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

小結(jié)

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

我計(jì)劃在后續(xù)添加統(tǒng)一的鑒權(quán)、日志打印和異常捕獲處理功能,使依賴組件引入的風(fēng)險(xiǎn)更為可控。OpenFeign幫我們實(shí)現(xiàn)了服務(wù)聲明、接口聲明、HTTP請求發(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)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩黄色在线观看| 亚洲91久久| 国产精品毛片在线看| 欧美精品一区二区三区精品| 亚洲性视频h| 午夜免费一区| 爽爽淫人综合网网站| 蜜桃久久精品一区二区| 免费人成在线不卡| 一本一本久久| 一区二区国产精品| 日本午夜精品视频在线观看| 欧美精品第一区| 国产在线看片免费视频在线观看| 欧产日产国产精品视频| 欧美日韩国产高清电影| 久久午夜精品| 欧美日一区二区在线观看| 麻豆精品视频在线| 在线天堂中文资源最新版| 婷婷六月综合| 亚洲tv在线| 精品国产精品国产偷麻豆| 久久久国产精品一区二区中文| 国产精品97| 天堂av一区| 国产精品二区不卡| 伊人成人网在线看| 久久国产尿小便嘘嘘| 日韩av在线播放网址| 午夜av一区| 日韩av不卡一区二区| 精品精品久久| 亚洲精品极品少妇16p| 亚洲精品美女91| 精品视频在线观看网站| 激情婷婷欧美| 国产乱子精品一区二区在线观看| 日韩欧美一区免费| 丝袜美腿一区二区三区| 美女精品视频在线| 午夜欧美在线| 国产伦精品一区二区三区视频| 欧美少妇精品| 首页国产精品| 国产欧美日韩精品高清二区综合区| 久久精品免视看国产成人| 免费一二一二在线视频| 中文字幕av一区二区三区四区| 美女精品视频在线| 五月婷婷亚洲| 国产精品magnet| 91精品高清| 国产精品主播| 日韩av福利| 亚洲精品无吗| 亚洲www免费| 日韩高清不卡一区二区| 欧洲亚洲一区二区三区| 亚洲尤物av| 综合日韩av| 日韩精品高清不卡| 久久中文字幕av一区二区不卡| 日韩精品一区二区三区中文在线| 三级在线看中文字幕完整版| 五月激激激综合网色播| 久久久777| 国产福利资源一区| 每日更新成人在线视频| 久久精品国产99国产| 蜜臀av国产精品久久久久| 美女一区网站| 日韩不卡手机在线v区| 在线国产一区二区| 成人在线免费观看91| 一区免费在线| 欧美日本不卡高清| 夜夜嗨av一区二区三区网站四季av| 国产高清视频一区二区| 久久福利精品| 日韩中文影院| 国产精品传媒麻豆hd| 水野朝阳av一区二区三区| 999精品在线| 欧美国产不卡| 中文字幕av一区二区三区四区| 99精品小视频| 日韩av在线中文字幕| 国产伦理久久久久久妇女| 日韩精品一二三| 久久中文字幕二区| 红杏一区二区三区| 欧美精品三级在线| 伊人久久一区| 先锋影音国产一区| 九九在线精品| 久久久五月天| 中文字幕在线看片| 韩国一区二区三区视频| 日本视频中文字幕一区二区三区| 欧美精品一线| 日本精品久久| 免费不卡在线观看| 在线亚洲国产精品网站| 久久亚洲国产精品尤物| 日产午夜精品一线二线三线| 国产免费播放一区二区| 亚洲欧美成人综合| 99精品美女| 国产亚洲高清视频| 91偷拍一区二区三区精品| 国产美女久久| 欧美在线看片| 亚洲精品成人一区| 国产亚洲精品v| 欧美精品一卡| 欧美日韩四区| 成人久久一区| 天堂av在线| 成人看片网站| 亚洲涩涩在线| 日韩免费小视频| 欧美成a人国产精品高清乱码在线观看片在线观看久 | 88久久精品| 日韩极品在线观看| 日本欧美大码aⅴ在线播放| 日韩av网站在线观看| 91综合久久爱com| 国产精品一区二区美女视频免费看 | 97精品资源在线观看| 日本国产欧美| 综合国产视频| 欧美一级网址| 国产精品久久久久毛片大屁完整版| 国产精一区二区| 久久99免费视频| 国产精品二区不卡| 久久久一本精品| 91国语精品自产拍| 免费看日韩精品| 欧美在线看片| 国产伊人久久| 久久美女精品| 中文字幕乱码亚洲无线精品一区| 日韩av网站在线观看| 麻豆久久久久久| 精品一区二区三区免费看 | 久久av超碰| av资源亚洲| 国产精品视区| 日本va欧美va精品| 免费精品一区| 少妇精品导航| 中文字幕日韩高清在线 | 欧美亚洲三级| 国产一区二区三区黄网站| 久久一级电影| 亚洲精品福利| 久久99影视| 激情亚洲影院在线观看| 伊人精品视频| 国产欧美久久一区二区三区| 欧美一区久久久| 视频一区欧美精品| 蜜桃久久久久| 一区视频在线| 国产精品**亚洲精品| 亚洲五月婷婷| 日韩av字幕| 国产在线|日韩| 日韩在线麻豆| 国产精品伦理久久久久久| 日韩视频一区| 欧美日韩亚洲一区二区三区在线 | 91精品一区二区三区综合| 中文字幕日韩高清在线| 麻豆国产精品一区二区三区| 欧美~级网站不卡| 国产亚洲欧美日韩在线观看一区二区| 日韩一区二区三区免费播放| 美美哒免费高清在线观看视频一区二区| 国产精品免费不| 亚洲成人日韩| 老牛国内精品亚洲成av人片| 午夜视频精品| 久久男人av| 亚洲黄色在线| 精品国产一区二区三区噜噜噜| 国产模特精品视频久久久久| 久久亚洲资源中文字| 国产毛片一区| 成人亚洲一区| 日韩国产在线不卡视频| 国产一区二区三区自拍| 嫩草伊人久久精品少妇av杨幂| 一区福利视频| 国产videos久久| 日韩国产一二三区| 最新亚洲激情| 午夜久久中文|