3.1 WebFilter获取并保存 首先,在WebFilter中获取Request对象并保存,代码如下: @Configuration@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)public class ReactiveRequestContextFilter implements WebFilter {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {ServerHttpRequest request = exchange.getRequest();return chain.filter(exchange).subscriberContext(ctx -> ctx.put(ReactiveRequestContextHolder.CONTEXT_KEY, request));}} 从ServerWebExchange中获取到ServerHttpRequest对象,再通过put方法把它放进Context里。 3.2 工具类Holder 实现一个工具类来提供静态方法,在Filter后的任何场景都可以使用: public class ReactiveRequestContextHolder {public static final Class<ServerHttpRequest> CONTEXT_KEY = ServerHttpRequest.class; public static Mono<ServerHttpRequest> getRequest() {return Mono.subscriberContext().map(ctx -> ctx.get(CONTEXT_KEY));}} 3.3 在Controller中使用 我们尝试在Controller中使用ReactiveRequestContextHolder来获取Request: @RestControllerpublic class GetRequestController { @RequestMapping(“/request”)public Mono<String> getRequest() {return […]
Category Archives: 微服务
阿里巴巴Cola架构,代码克隆
git clone https://gitee.com/lvjiyuan88/COLA.git 进入目录cola-archetypes 执行mvn install 进入目录cola-components 执行mvn install 进入示例项目samples\craftsman 执行mvn install 把lombok.jar加到eclipse目录 修改eclipse.ini最后一行加入 -javaagent:文件路径\lombok.jar 在start项目启动Application
欢迎光临
欢迎光临微服务技术站。