与springcloud整合的框架源码读取入口

22 篇文章 0 订阅

前提

最近开始准备系统全面的学习springcloud相关组件,过程中会记录并发表出来,今天就是从阅读源码的入口开始.

  • 提疑

就引入一个依赖

image.png

一个注解

image.png

  • 怎么就可以将相关功能与springcloud给整合起来呢?
  • 又没有配置相关的aop,怎么实现的呢?
  • 解密

image.png

image.png

  • 一般来说都是找AutoConfiguration字样的
  • 跟你使用的相关注解有相同前缀的一般没跑了

image.png

整个类稍微过了一下,觉的这个应该跟一开始的那个注解有关,即使不是就找其他的看看,不怕错.

image.png

回调遍历相关注解,实现注册

image.png

  • 后置

因为这是只讲一个阅读springcloud相关的源码入口,不同框架不同实现,这里就是简单的举例说明了一下,后期会具体分析讲解.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Cloud框架中,可以通过使用Spring Cloud Gateway网关来读取和处理HTTP请求。Spring Cloud Gateway提供了一些过滤器(Filter)来处理HTTP请求和响应,其中包括读取请求体内容的过滤器。 如果需要多次读取请求体内容,可以在自定义的过滤器中实现。具体步骤如下: 1. 创建一个自定义的过滤器类,实现GatewayFilter接口,并重写它的filter方法,示例代码如下: ``` @Component public class RequestBodyCachingFilter implements GatewayFilter { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { return DataBufferUtils.join(exchange.getRequest().getBody()) .flatMap(dataBuffer -> { byte[] bytes = new byte[dataBuffer.readableByteCount()]; dataBuffer.read(bytes); DataBufferUtils.release(dataBuffer); // 将请求体内容缓存到ServerWebExchange中 exchange.getAttributes().put("cachedRequestBody", bytes); return Mono.just(bytes); }) .then(chain.filter(exchange)); } } ``` 2. 在Spring Cloud Gateway配置类中注册自定义的过滤器,示例代码如下: ``` @Configuration public class GatewayConfig { @Autowired private RequestBodyCachingFilter requestBodyCachingFilter; @Bean public RouteLocator customRouteLocator(RouteLocatorBuilder builder) { return builder.routes() .route(r -> r.path("/api/**") .filters(f -> f.filter(requestBodyCachingFilter)) // 注册自定义过滤器 .uri("http://localhost:8080")) .build(); } } ``` 以上代码中,我们创建了一个名为RequestBodyCachingFilter的自定义过滤器,它实现了GatewayFilter接口,并在filter方法中将请求体内容缓存到ServerWebExchange中。同时,在GatewayConfig配置类中注册了该过滤器,并将其应用于所有路径以“/api/”开头的请求中。 这样,每次发送符合条件的HTTP请求时,就会先执行RequestBodyCachingFilter过滤器,将请求体内容缓存到ServerWebExchange中,后续需要读取时,就可以直接从ServerWebExchange中获取。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值