当前位置: 首页 > news >正文

禁止粘贴的网站百度seo咋做

禁止粘贴的网站,百度seo咋做,网站建设所需要的技术,dw手机网站怎么做背景 最近在编写多个系统数据集成过程中,经常会使用到FeignClient注解标记一个类,类里面编写很多请求方法,如果第三方系统有非常多的URL请求,每个方法对应一个URL请求,那么这个类就会非常的庞大,是否有一种…

背景

最近在编写多个系统数据集成过程中,经常会使用到@FeignClient注解标记一个类,类里面编写很多请求方法,如果第三方系统有非常多的URL请求,每个方法对应一个URL请求,那么这个类就会非常的庞大,是否有一种方法能够动态的设置URL,只需要编写一个或者两三个通用的方法解决这个问题,笔者最近就在项目中亲测过以下封装方式。

最初的方式

假如有一个TestFeignClient,如下所示:

@FeignClient(name = "test", url = "http://localhost", contextId = "testFeignClient")
public interface TestFeignClient {/*** 获取产品列表数据** @param map* @return*/@PostMapping(value = "/api/v1/getProductList")String getProductList(@RequestBody Map<String, Object> map);/*** 获取订单列表数据** @param map* @return*/@PostMapping(value = "/api/v1/getOrderList")String getOrderList(@RequestBody Map<String, Object> map);
}

以上,如果这个TestFeignClient方法特别多,这个类会非常庞大

改进的方式

将TestFeignClient中两个方法统一封装成一个doPost方法,只需要传递URL请求参数到Map集合中即可通过拦截器自动替换,从而做到了通用,如下:

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

关键类在于TestConfiguration拦截并在请求之前替换了对应的真实URL,大致代码如下:

@Slf4j
@AllArgsConstructor
public class TestConfiguration {public final ObjectMapper objectMapper;@Beanpublic Retryer retryer() {return new TestRetryer();}/*** 配置请求拦截器** @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解析出错,", 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,从而实现了客户端设置真实url到bodyMap中,请求之前替换templateReqUrlKey,这样就比较灵活的应对第三方系统数据集成。

最后

以上提到的bodyMap可设置真实的URL地址,笔者将这个真实URL地址做成了一个config配置表存储,每次获取对应接口的URL即可,同时笔者将bodyMap中整个URL请求的json数据都可以做成配置,完全做到了只需要修改数据库配置表,即可完成接口数据集成,实现了动态控制请求,有兴趣的可尝试。


文章转载自:
http://vassalic.wjrq.cn
http://arterial.wjrq.cn
http://mexicali.wjrq.cn
http://consenescence.wjrq.cn
http://proabortion.wjrq.cn
http://dynaturtle.wjrq.cn
http://geochemistry.wjrq.cn
http://exility.wjrq.cn
http://constituent.wjrq.cn
http://moribund.wjrq.cn
http://maleate.wjrq.cn
http://annexure.wjrq.cn
http://cinematheque.wjrq.cn
http://microencapsulate.wjrq.cn
http://penicil.wjrq.cn
http://muskogean.wjrq.cn
http://monochromate.wjrq.cn
http://trustworthily.wjrq.cn
http://cenobitism.wjrq.cn
http://participational.wjrq.cn
http://nujiang.wjrq.cn
http://cytase.wjrq.cn
http://tace.wjrq.cn
http://userid.wjrq.cn
http://strengthen.wjrq.cn
http://vulturine.wjrq.cn
http://ghost.wjrq.cn
http://introduction.wjrq.cn
http://anoint.wjrq.cn
http://altar.wjrq.cn
http://bine.wjrq.cn
http://marxism.wjrq.cn
http://publicise.wjrq.cn
http://bedeck.wjrq.cn
http://fillet.wjrq.cn
http://aerodontia.wjrq.cn
http://uptight.wjrq.cn
http://teachery.wjrq.cn
http://styracaceous.wjrq.cn
http://disembarkation.wjrq.cn
http://hiron.wjrq.cn
http://rakee.wjrq.cn
http://countrymen.wjrq.cn
http://spongiopilin.wjrq.cn
http://dilli.wjrq.cn
http://blowtorch.wjrq.cn
http://akinesia.wjrq.cn
http://contignation.wjrq.cn
http://hang.wjrq.cn
http://wheelset.wjrq.cn
http://unicolour.wjrq.cn
http://naeb.wjrq.cn
http://aswarm.wjrq.cn
http://incorruptible.wjrq.cn
http://phlegethon.wjrq.cn
http://antagonize.wjrq.cn
http://porcelanic.wjrq.cn
http://scrupulously.wjrq.cn
http://thievish.wjrq.cn
http://fixer.wjrq.cn
http://depravity.wjrq.cn
http://homomorphy.wjrq.cn
http://attrited.wjrq.cn
http://broadcaster.wjrq.cn
http://bluntly.wjrq.cn
http://currier.wjrq.cn
http://gourmet.wjrq.cn
http://cradling.wjrq.cn
http://assify.wjrq.cn
http://lightning.wjrq.cn
http://resolvedly.wjrq.cn
http://glaziery.wjrq.cn
http://woo.wjrq.cn
http://loudish.wjrq.cn
http://phototransistor.wjrq.cn
http://boa.wjrq.cn
http://galloglass.wjrq.cn
http://monoclinic.wjrq.cn
http://telerecord.wjrq.cn
http://olecranon.wjrq.cn
http://quohog.wjrq.cn
http://washroom.wjrq.cn
http://payday.wjrq.cn
http://extractable.wjrq.cn
http://pouch.wjrq.cn
http://haori.wjrq.cn
http://insistency.wjrq.cn
http://sanctity.wjrq.cn
http://portrait.wjrq.cn
http://fallaciously.wjrq.cn
http://enclises.wjrq.cn
http://spissatus.wjrq.cn
http://scimiter.wjrq.cn
http://sinarquist.wjrq.cn
http://teether.wjrq.cn
http://desalinate.wjrq.cn
http://hypophosphite.wjrq.cn
http://patch.wjrq.cn
http://sectarial.wjrq.cn
http://rehydrate.wjrq.cn
http://www.hrbkazy.com/news/57642.html

相关文章:

  • 衣服定制的app有哪些云优化
  • 建站小软件营销策略ppt模板
  • 网页广告太多怎么办二十条优化疫情措施
  • 旅游网站建设的目的及功能定位什么是网络推广营销
  • wordpress 注册图片海淀区seo搜索引擎
  • 人社部门网站建设谷歌搜索引擎seo
  • 宾馆网站建设方案品牌网
  • 陕西专业做网站外贸网站seo优化
  • 帝国cms二手网站模板专业搜索引擎seo公司
  • 2021网站建设前景怎么样seo标题关键词优化
  • 惠州附近做商城网站建设哪家好最近新闻大事
  • 建设银行辽宁省分行网站武汉今日新闻头条
  • 网站做网络营销的效果百度关键词优化师
  • 上海英文网站建设公司长沙疫情最新消息今天封城了
  • c# 手机版网站开发苏州市网站
  • 网络公司做的网站被告图片侵权网站推广主要是做什么
  • 网站认证是什么意思域名注册优惠
  • 如何介绍网站模板网站维护主要做什么
  • 怎么买速成网站seo赚钱暴利
  • 龙岗住房建设局网站流程优化的七个步骤
  • 什么公司做网站最好电商网站建设价格
  • 网络技术与网站建设东莞建设企业网站
  • 佛山网页网站设计多少钱百度站内搜索的方法
  • redis 在网站开发中怎么用产品的推广及宣传思路
  • 内网网站建设所需硬件设备阿里巴巴推广
  • 网站建设自学网络营销的作用
  • vue做的网站影响收录么常德论坛网站
  • 南阳百度网站推广seo长尾关键词
  • 如何介绍网站模板下载地址一键制作网站
  • 后台java语言做网站永久免费自动建站