中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

禁止粘貼的網(wǎng)站如何優(yōu)化搜索引擎的準(zhǔn)確性

禁止粘貼的網(wǎng)站,如何優(yōu)化搜索引擎的準(zhǔn)確性,wordpress如何生成rss,用vps做網(wǎng)站背景 最近在編寫多個(gè)系統(tǒng)數(shù)據(jù)集成過(guò)程中,經(jīng)常會(huì)使用到FeignClient注解標(biāo)記一個(gè)類,類里面編寫很多請(qǐng)求方法,如果第三方系統(tǒng)有非常多的URL請(qǐng)求,每個(gè)方法對(duì)應(yīng)一個(gè)URL請(qǐng)求,那么這個(gè)類就會(huì)非常的龐大,是否有一種…

背景

最近在編寫多個(gè)系統(tǒng)數(shù)據(jù)集成過(guò)程中,經(jīng)常會(huì)使用到@FeignClient注解標(biāo)記一個(gè)類,類里面編寫很多請(qǐng)求方法,如果第三方系統(tǒng)有非常多的URL請(qǐng)求,每個(gè)方法對(duì)應(yīng)一個(gè)URL請(qǐng)求,那么這個(gè)類就會(huì)非常的龐大,是否有一種方法能夠動(dòng)態(tài)的設(shè)置URL,只需要編寫一個(gè)或者兩三個(gè)通用的方法解決這個(gè)問(wèn)題,筆者最近就在項(xiàng)目中親測(cè)過(guò)以下封裝方式。

最初的方式

假如有一個(gè)TestFeignClient,如下所示:

@FeignClient(name = "test", url = "http://localhost", contextId = "testFeignClient")
public interface TestFeignClient {/*** 獲取產(chǎn)品列表數(shù)據(jù)** @param map* @return*/@PostMapping(value = "/api/v1/getProductList")String getProductList(@RequestBody Map<String, Object> map);/*** 獲取訂單列表數(shù)據(jù)** @param map* @return*/@PostMapping(value = "/api/v1/getOrderList")String getOrderList(@RequestBody Map<String, Object> map);
}

以上,如果這個(gè)TestFeignClient方法特別多,這個(gè)類會(huì)非常龐大

改進(jìn)的方式

將TestFeignClient中兩個(gè)方法統(tǒng)一封裝成一個(gè)doPost方法,只需要傳遞URL請(qǐng)求參數(shù)到Map集合中即可通過(guò)攔截器自動(dòng)替換,從而做到了通用,如下:

@FeignClient(name = "test", url = "http://localhost", contextId = "testFeignClient", configuration = TestConfiguration.class)
public interface TestCommonFeignClient {/*** POST通用請(qǐng)求** @param map* @return*/@PostMapping(value = "templateReqUrlKey")String doPost( @RequestBody Map<String, Object> map);
}

關(guān)鍵類在于TestConfiguration攔截并在請(qǐng)求之前替換了對(duì)應(yīng)的真實(shí)URL,大致代碼如下:

@Slf4j
@AllArgsConstructor
public class TestConfiguration {public final ObjectMapper objectMapper;@Beanpublic Retryer retryer() {return new TestRetryer();}/*** 配置請(qǐng)求攔截器** @return*/@Beanpublic RequestInterceptor testRequestInterceptor() {return template -> {template.header("Content-Type", "application/json");if (template.method().equals(Request.HttpMethod.POST.name())) {String body = new String(template.body(), StandardCharsets.UTF_8);Map<String, Object> bodyMap = new HashMap<>();try {bodyMap = objectMapper.readValue(body,new TypeReference<Map<String, Object>>() {});} catch (JsonProcessingException e) {log.error("json解析出錯(cuò),", e);}String srcUrl = template.url();String templateUrl = "";if (bodyMap.containsKey("templateReqUrlKey") && srcUrl.contains("templateReqUrlKey")) {templateUrl = bodyMap.get("templateReqUrlKey").toString();template.uri(templateUrl);}bodyMap.remove("templateReqUrlKey");template.body(JSONUtil.toJsonStr(bodyMap));}};}@Beanpublic Decoder decoder() {return (response, type) -> {String resultStr = IOUtils.toString(response.body().asInputStream(), String.valueOf(StandardCharsets.UTF_8));JSONObject obj = JSONUtil.parseObj(resultStr);String code = obj.get("code").toString();if (Objects.equals("200", code)) {// TODO throw new RetryableException(500, obj.getStr("msg"), response.request().httpMethod(), null, response.request());}return resultStr;};}}

以上攔截器testRequestInterceptor中替換了原始templateReqUrlKey,從而實(shí)現(xiàn)了客戶端設(shè)置真實(shí)url到bodyMap中,請(qǐng)求之前替換templateReqUrlKey,這樣就比較靈活的應(yīng)對(duì)第三方系統(tǒng)數(shù)據(jù)集成。

最后

以上提到的bodyMap可設(shè)置真實(shí)的URL地址,筆者將這個(gè)真實(shí)URL地址做成了一個(gè)config配置表存儲(chǔ),每次獲取對(duì)應(yīng)接口的URL即可,同時(shí)筆者將bodyMap中整個(gè)URL請(qǐng)求的json數(shù)據(jù)都可以做成配置,完全做到了只需要修改數(shù)據(jù)庫(kù)配置表,即可完成接口數(shù)據(jù)集成,實(shí)現(xiàn)了動(dòng)態(tài)控制請(qǐng)求,有興趣的可嘗試。

http://www.risenshineclean.com/news/4379.html

相關(guān)文章:

  • 婚禮策劃網(wǎng)站模板網(wǎng)絡(luò)精準(zhǔn)推廣
  • 什么網(wǎng)站做的靠枕比較有創(chuàng)意搜狐財(cái)經(jīng)峰會(huì)直播
  • 武漢黑馬程序員培訓(xùn)機(jī)構(gòu)官網(wǎng)上海自動(dòng)seo
  • 網(wǎng)站打開時(shí)的客戶引導(dǎo)頁(yè)的搜索引擎優(yōu)化
  • 網(wǎng)站滾動(dòng)效果怎么做的上?;ヂ?lián)網(wǎng)公司排名
  • 做一份完整的網(wǎng)站規(guī)劃書50個(gè)市場(chǎng)營(yíng)銷經(jīng)典案例
  • awds網(wǎng)站開發(fā)留學(xué)廣州疫情最新情況
  • 做個(gè)網(wǎng)站好還是做淘寶好建站是什么意思
  • 做網(wǎng)站建設(shè)工資多少?gòu)V告網(wǎng)絡(luò)推廣
  • 外貿(mào)沒有公司 如何做企業(yè)網(wǎng)站seo系統(tǒng)培訓(xùn)
  • jsp購(gòu)物網(wǎng)站開發(fā)教程專業(yè)網(wǎng)站seo推廣
  • 有什么做視頻的素材網(wǎng)站新東方烹飪培訓(xùn)學(xué)校
  • php網(wǎng)頁(yè)設(shè)計(jì)論文淄博seo公司
  • 蘇州最新通知天津搜索引擎優(yōu)化
  • 網(wǎng)站模板中心怎么投放廣告是最有效的
  • 優(yōu)設(shè)網(wǎng)站排行榜網(wǎng)站
  • 安徽網(wǎng)站建設(shè)哪家好免費(fèi)技能培訓(xùn)在哪里報(bào)名
  • 用ps網(wǎng)站首頁(yè)怎么做長(zhǎng)沙百度開戶
  • 培訓(xùn)的網(wǎng)站建設(shè)互聯(lián)網(wǎng)營(yíng)銷師證書是國(guó)家認(rèn)可的嗎
  • 網(wǎng)站開發(fā)模式acca少女網(wǎng)課視頻
  • 專做旅游酒店特價(jià)網(wǎng)站關(guān)鍵詞提取工具app
  • 關(guān)于政府網(wǎng)站建設(shè)的講話南寧網(wǎng)站快速排名提升
  • 中港建設(shè)集團(tuán)有限公司網(wǎng)站seo范疇
  • 網(wǎng)站建設(shè)中通知網(wǎng)上推廣平臺(tái)
  • 網(wǎng)站建設(shè)鼠標(biāo)滑動(dòng)效果網(wǎng)站優(yōu)化就是搜索引擎優(yōu)化
  • 合伙做網(wǎng)站怎么分配股權(quán)百度快速收錄接口
  • 中國(guó)建設(shè)網(wǎng)站首頁(yè)sem掃描電鏡是測(cè)什么的
  • 關(guān)于網(wǎng)站制作整站優(yōu)化工具
  • 個(gè)人做商城網(wǎng)站大概多少錢2021百度新算法優(yōu)化
  • 中學(xué)生網(wǎng)站作品免費(fèi)seo免費(fèi)培訓(xùn)