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

江西省网站开发免费精准客源

江西省网站开发,免费精准客源,100件创意产品设计国外,邢台专业做网站费用我们知道,经过网关的业务请求会被路由到后端真实的业务服务上去,假如我们使用的是Spring Cloud Gateway,那么你知道Spring Cloud Gateway是在哪一步去匹配路由的吗? 源码之下无秘密,让我们一起从源码中寻找答案。 入…

我们知道,经过网关的业务请求会被路由到后端真实的业务服务上去,假如我们使用的是Spring Cloud Gateway,那么你知道Spring Cloud Gateway是在哪一步去匹配路由的吗?

源码之下无秘密,让我们一起从源码中寻找答案。

入口

Spring Cloud Gateway 的入口为 DispatcherHandlerhandle 方法,其中主要逻辑有获取Hander 和 执行Handler

获取Handler

获取 Handler 的时候,handlerMappings 中包含有一个 RoutePredicateHandlerMapping 实例,其获取 Handler 的实现最终会调用到 getHandlerInternal 方法。

org.springframework.cloud.gateway.handler.RoutePredicateHandlerMapping

getHandlerInternal 方法会调用了 lookupRoute 方法去获取路由。

其中:

  • 第一步是从缓存中获取路由列表,源码解析见:
  • 第二步是调用每个路由的断言去匹配当前请求,匹配到就直接返回,忽略后续所有其他路由。

获取到路由后将路由信息设置到 exchangegatewayRoute 属性上,然后返回 Handler

其中RoutePredicateHandlerMapping 实例是在 GatewayAutoConfiguration 中配置好的。

org.springframework.cloud.gateway.config.GatewayAutoConfiguration

public class GatewayAutoConfiguration {// ...@Beanpublic RouteLocator routeDefinitionRouteLocator(GatewayProperties properties,List<GatewayFilterFactory> gatewayFilters,List<RoutePredicateFactory> predicates,RouteDefinitionLocator routeDefinitionLocator,ConfigurationService configurationService) {return new RouteDefinitionRouteLocator(routeDefinitionLocator, predicates,gatewayFilters, properties, configurationService);}@Bean@Primary@ConditionalOnMissingBean(name = "cachedCompositeRouteLocator")// TODO: property to disable composite?public RouteLocator cachedCompositeRouteLocator(List<RouteLocator> routeLocators) {return new CachingRouteLocator(new CompositeRouteLocator(Flux.fromIterable(routeLocators)));}@Beanpublic RoutePredicateHandlerMapping routePredicateHandlerMapping(FilteringWebHandler webHandler, RouteLocator routeLocator,GlobalCorsProperties globalCorsProperties, Environment environment) {return new RoutePredicateHandlerMapping(webHandler, routeLocator,globalCorsProperties, environment);}// ...
}}

结论

综上,Spring Cloud Gateway 的路由匹配是在获取 Handler 的过程中,在 RoutePredicateHandlerMapping 中实现的,具体实现方法为 lookupRoute。最后将匹配到的路由设置到 exchangegatewayRoute 属性上,供后续获取并使用。

http://www.yayakq.cn/news/718504/

相关文章:

  • 惠州网站建设方案外包wordpress代码打包
  • 高校学风建设专栏网站iis如何建立网站
  • 做网站是比特币的企业手机网站建设策划书
  • 一个网站开发团队要什么人wordpress文章自动标签
  • 棠下手机网站建设wordpress网页版
  • 微信订阅号关键网站wordpress首页幻灯
  • 福建定制网站开发wordpress文章顺序
  • 云空间布置网站程序员做网站类网站
  • 简单oa网站建设方案江西建站哪家专业
  • cms 网站网站平台做推广
  • 游标卡尺 东莞网站建设深圳seo网站优化公司
  • 成都建设规划局网站omega欧米茄手表官网
  • 重庆企业免费建站城市人家装饰公司怎么样
  • 国外网站空间需要备案吗线下教育机构
  • 怎么在wordpress上设计网站wordpress两人共用
  • 专业开发网站建设你好多莉wordpress
  • 网站怎么吸引用户wordpress 搭建app
  • 网站确定关键词 如何做网站建设营销攻略
  • 国内高端品牌网站建设网站建设系统规划方案
  • 成品网站管理系统源码企业网站开发项目策划书基本框架
  • 网络营销网站平台有哪些网站对位
  • 企业网站推广方案上海wordpress机械免费主题
  • 温州网站开发成都建设网上商城平台公司
  • 临沂市建设局兰山区网站电子商务是最差的专业吗
  • 徐州cms模板建站北京软件制作公司
  • 推荐西安优秀的高端网站建设公司域名后面wordpress
  • 大连html5网站建设费用平面设计包括哪些软件
  • 东莞长安网站制作做网站租服务器吗
  • 安娜尔返利机器人怎么做网站和县网页定制
  • 展示型网站有哪些功能网站建设经验交流