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

6.19_JAVA_微服务

1、跑后端的时候要把数据库跑起来,否则会报错。

2、predicate断言:

 预言:predict

3、gateway:出路口

4、API:List.of("a", "b", "c");把abc编程一个集合。

5、

 6、shortcutFieldOrder定义了yaml的顺序:

 7、思考以下问题,为什么PrintAnyGatewayFilterFactory类没有直接调用getConfigClass类,却保留了下来?

答案:因为它们是通过Spring Cloud Gateway 框架内部机制 完成的


@Component
public class PrintAnyGatewayFilterFactory // 父类泛型是内部类的Config类型extends AbstractGatewayFilterFactory<PrintAnyGatewayFilterFactory.Config> {@Overridepublic GatewayFilter apply(Config config) {// OrderedGatewayFilter是GatewayFilter的子类,包含两个参数:// - GatewayFilter:过滤器// - int order值:值越小,过滤器执行优先级越高return new OrderedGatewayFilter(new GatewayFilter() {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {// 获取config值String a = config.getA();String b = config.getB();String c = config.getC();// 编写过滤器逻辑System.out.println("a = " + a);System.out.println("b = " + b);System.out.println("c = " + c);// 放行return chain.filter(exchange);}}, 100);}// 自定义配置属性,成员变量名称很重要,下面会用到@Datastatic class Config{private String a;private String b;private String c;}// 将变量名称依次返回,顺序很重要,将来读取参数时需要按顺序获取@Overridepublic List<String> shortcutFieldOrder() {return List.of("a", "b", "c");}// 返回当前配置类的类型,也就是内部的Config@Overridepublic Class<Config> getConfigClass() {return Config.class;}}

8、这是个啥?

GatewayFilter 是一个 接口(Interface),正常情况下接口不能直接 new,必须提供实现类。
但通过 匿名内部类,你可以 直接实现接口的方法,而不用单独写一个类文件。

相当于是:GatewayFilterEntity gatewayFilterEntity

9、ServerWebExchange exchange包含:exchange.getRequest()、exchange.getResponse()、exchange.getAttributes()、exchange.mutate()

 

(exchange, chain) -> {                     //例// 示例1:获取请求头String token = exchange.getRequest().getHeaders().getFirst("Authorization");// 示例2:修改请求路径ServerWebExchange newExchange = exchange.mutate().request(builder -> builder.path("/new-path")).build();// 示例3:拦截请求(直接返回响应)exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);return exchange.getResponse().setComplete();
}

10、exchange更偏向功能类。chain更多是用来链接多个要过滤的内容,比如过滤掉1、2、3、4、5就需要chain链接起来。

11、

//全局生效:放在gateway底下:
spring:cloud:gateway:default-filters:- PrintAny=1,2,3  # 全局生效routes:- id: itemuri: lb://item-servicepredicates:- Path=/items/**                  */- id: carturi: lb://cart-servicepredicates:- Path=/carts/**                  *///局部生效:放在id底下:
spring:cloud:gateway:routes:- id: itemuri: lb://item-servicepredicates:- Path=/items/**                   */filters:- PrintAny=1,2,3  # 仅对/item路由生效- id: carturi: lb://cart-servicepredicates:- Path=/carts/**                   

12、default-filters版的GateFilter和GlobalFilter有啥区别?

13、JWT(JSON Web Token):登录时候需要

相关文章:

  • 主成分分析(PCA)例题——给定协方差矩阵
  • naive-ui-2.28.3 离线文档
  • Oracle 数据库性能优化之重做日志(redo)
  • MySQL基础函数
  • [Data Pipeline] Airflow DAG | 数据质量检查PyDeequ
  • Linux 并发编程:从线程池到单例模式的深度实践
  • android 省市区联动选择
  • Kafka性能调优全攻略:从JVM参数到系统优化
  • Angular--Hello(TODO)
  • 基于C#的Baumer相机二次开发教程
  • 主流防火墙策略绕过漏洞的修复方案与加固实践
  • 宽度优先遍历(bfs)(2)——fllodfill算法
  • QLoRA (Quantized Low-Rank Adaptation)浅析
  • 火山引擎项亮:机器学习与智能推荐平台多云部署解决方案正式发布
  • 0_1排序与搜索
  • 【unitrix】 3.2 位取反运算(not.rs)
  • 【音视频】PJSIP库——示例简介、C++类说明
  • 【 感知集群】大规模分布式基础设施的AI赋能蓝图
  • Spring AOP @Before (前置通知): 在目标方法执行前做什么?
  • ChatGPT上瘾,大脑萎缩47%!?
  • 怎样利用网站做推广/东莞头条最新新闻
  • 哪家公司搭建网站/山东关键词快速排名
  • 日照城建建设网站/店铺推广平台有哪些
  • 北京企业信息/搜索引擎优化中的步骤包括
  • 四川建设行政主管部门官方网站/百度的搜索引擎优化
  • 做网站联系客服按钮代码/谷歌搜索引擎营销