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

高端网站设计新鸿儒微信平台如何开发

高端网站设计新鸿儒,微信平台如何开发,有服务器和域名怎么做网站,店名设计logo一、路由断言 路由断言就是判断路由转发的规则 二、路由过滤器 1. 路由过滤器可以实现对网关请求的处理#xff0c;可以使用 Gateway 提供的#xff0c;也可以自定义过滤器 2. 路由过滤器 GatewayFilter#xff08;默认不生效#xff0c;只有配置到路由后才会生效#x…一、路由断言 路由断言就是判断路由转发的规则 二、路由过滤器 1. 路由过滤器可以实现对网关请求的处理可以使用 Gateway 提供的也可以自定义过滤器 2. 路由过滤器 GatewayFilter默认不生效只有配置到路由后才会生效 只对一个路由生效配置到 routes 下和 predicates 同级 对所有路由生效配置到 default-filters 3. 全局过滤器 GlobalFilter所有路由都生效声明后自动生效 三、网关请求处理流程 业务实战如果要进行用户校验应该在网关请求转发之前先完成对用户的校验判断用户是否有请求权限 网关请求转发NettyRoutingFilter 的 PRE 阶段 做法 1. 在 NettyRoutingFilter 之前的过滤器链中自定义过滤器完成登录校验 2. 在自定义过滤器 PRE 阶段完成登录校验POST 阶段请求已经转发了不符合业务先登录才能请求 3. 网关中没有业务逻辑只是做路由转发网关进行登录校验之后获取用户信息并没有实际作用除了校验 4. 网关将请求转发到微服务微服务需要用户信息网关需要将用户信息传给微服务 5. 怎么传网关将请求转发到微服务其实就是发起了一次 HTTP 请求可以将用户信息保存到请求头微服务从请求头中取出用户信息且不会对业务造成影响 ✔ 6. 微服务之间的调用怎么获取用户信息网关只将用户信息传递给了一个微服务cart-service但是微服务之间会相互调用trade-service 调用 cart-servicetrade-service 并没有用户信息cart-service 也不会自动将用户信息传递给调用它的微服务 可以使用将用户信息保存到请求头的方式在微服务之间传递用户信息吗微服务之间的请求OpenFeign和网关与微服务之间Spring Cloud Gateway 内置的的请求不同实现方式有差别 四、网关统一实现用户登录校验基于 JWT 1. 自定义过滤器并控制过滤器的顺序 路由过滤器GatewayFilter默认不生效只有配置到路由后才会生效 只对一个路由生效配置到 routes 下和 predicates 同级 对所有路由生效配置到 default-filters 全局过滤器 GlobalFilter所有路由都生效)声明后自动生效 filter 方法解读 参数 1 ServerWebExchange exchange网关内部的上下文对象保存网关内部整个过滤器链的共享数据如 request、response、session 及 一些自定义的共享属性所有过滤器都可以从 exchange 中读取 / 存储共享数据 参数 2 GatewayFilterChain chain过滤器链当前过滤器执行完之后通过 chain 调用过滤器链中的下一个过滤器 网关采用的是非阻塞式的编程利用 Mono 定义回调函数等之后请求转发回来的返回结果有了再调用回调函数过滤器中 POST 部分的逻辑一般不用写回调 e.g 实际开发中遇到的回调接口调用成功后统计接口调用次数 1就是要等到返回结果是 ok 的再去执行调用次数 1 的逻辑 返回值 MonoVoid每个过滤器执行完之后直接返回 Mono 自定义过滤器的优先级比 NettyRoutingFilter 高即可NettyRoutingFilter 的 order 值是 maxInt优先级最低 // 1. 实现 GlobalFilter 接口中的 filter 方法 // 2. 实现 Orderd 接口的 getOrder 方法通过 ORDER 控制过滤器优先级 // 3. 放行将 exchange 传到下一个过滤器 2. 在网关实现登录校验 获取请求头 判断请求路径是否需要拦截有些路径不需要登录也可以查看 使用 Spring 提供的 AntPathMatcher 的 match() 方法来校验路径是否匹配指定的路径模式 pathPattern/search/** 等路径 private final AntPathMatcher antPathMatcher newAntPathMatcher(); 获取 token 校验并解析 token 拦截未登录用户 设置响应状态码未登录 401 终止流程 3. 网关传递用户信息给下游微服务 传递 使用上下文对象中修改请求的 APImutate() 将构造好的新的上下文对象传给下一个过滤器 获取微服务中的很多业务都需要获取用户信息将从请求头中获取用户信息的逻辑写到拦截器中统一获取可能会有很多个微服务写拦截器要在所有微服务里都写一遍 写到公共模块 common 其他微服务都引入这个模块依赖就都有了拦截器的功能 ✔ 定义拦截器 实现 HandlerInterceptor 接口其中的 preHandle() 方法在 Controller 之前执行 实现 afterCompletion() 方法在 Controller 执行完之后执行清楚 ThreadLocal 中的用户信息 注册拦截器定义 SpringMVC 的配置类实现 WebMvcConfigurer 中的 addInterceptors() 扫描包common 模块和微服务模块所在包不同Spring 不会自动扫描到配置类需要自己配置实现 Spring 自动装配 保存到 ThreadLocal 中其他业务从 ThreadLocal 取出用户信息 注意❗网关模块不能使用 / 引用 SpringMVC 相关的类Spring Cloud Gateway 的底层用的不是 SpringMVC而是响应式的 webflux 网关项目也引入了 common 模块但是 common 模块中定义了 SpringMVC 的拦截器微服务项目需要该拦截器网关不需要该拦截器如何次拦截器配置类在有些情况微服务模块生效有些情况网关不生效 解决方法让 SpringMVC 的配置类根据条件来加载即判断是否有 SpringMVC网关和其他微服务项目的差别就是是否有 SpringMVC可以根据是否有 SpringMVC 中的核心 API DispatcherServlet 实现使用 Spring 的条件注解 ConditionalOnClass(DispatcherServlet.class) 4.  微服务之间的信息传递OpenFeign 传递用户 用户信息是从 ThreadLocal 中取的要先从请求头中获取用户信息才能存到 ThreadLocal 中而请求头中的用户信息是网关向微服务发起请求时添加的但是微服务之间的是直接调用的没有经过网关而是通过 OpenFeign 的远程调用如何修改 OpenFeign 发起的请求 OpenFeign 中提供了一个拦截器接口 RequestInterceptor所有由 OpenFeign 发起的请求远程调用都会先调用拦截器处理请求 其中的 RequestTemplate 类中提供了一些方法如 header()可以让我们修改请求头 五、总结
http://www.hkea.cn/news/14305372/

相关文章:

  • 如何创建网站后台新乡网站建设哪家实力强
  • 做哪一类网站能赚钱网站建设销售实训报告
  • 做网站要招什么样的程序员手机网站引导页js插件
  • 网站建设实验的建议和看法设计师 英文网站
  • 汽车网站哪个好长春火车站是南站还是北站
  • 内蒙古企业网站制作云南建设厅网站设计
  • php 网站开发平台宁波怎样优化关键词
  • 太平阳电脑网网站模板网站云空间大小
  • 做时间轴的在线网站《网站基础建设-首保》
  • 网站流量指数中国手机网
  • 史丹利网站开发团队哪个网站做的系统好
  • 网站建设接口开发企业管理系统数据库
  • 霸州网站设计菏泽网站建设公司
  • 建设通网站有建筑公司名录大全大连建站
  • 网站网络营销怎么做企业网站平台
  • 做网站分辨率设置多少网络科技公司起名字大全免费
  • 网站界面设计的步骤南京最好的网页制作公司
  • 怎么做淘宝网站赚钱雅布设计中国分公司在哪里
  • 微信公众好第三方网站怎么做重庆移动网站建设
  • 做个小程序电子商务seo是什么意思
  • 东营网站建设服务电话安阳网络教研平台官网
  • 做网站一定要买服务器么华为手机价格大全
  • 做外贸怎样打开国外网站中美今天最新消息
  • 网站建设邮如何做网站推广 求指点
  • 在哪找人做网站万网
  • 做钻石的网站做网站需要的公司
  • 获取网站访客qq号码邯郸网站改版找谁做
  • 网站文本编辑器北京死亡病例最新消息
  • 济南商城网站建设多少钱织梦网站入侵
  • 高端网站建设与制作推广运营怎么做