Spring Cloud Gateway 记录请求应答数据日志操作
PayloadServerWebExchangeDecorator.java这个类中,我们实现了框架的ServerWebExchangeDecorator类,同时注入了自定义的两个类,PartnerServerHttpRequestDecorator 和 PartnerServerHttpResponseDecorator ,这两个类用于后面对请求与响应的拦截。PartnerServerHttpRequestDecorator.java这个类实现了 ServerHttpRequestDecorator , 并在构造函数中,使用响应式编程,调用了打印log的方法,注意关注 Mono mono = DataBufferUtils.join; ,这里将Flux合并成了一个Mono,因为如果不这么做,body内容过多,将会被分段打印,这里是一个恒重要的点,在打印RequestParamsHandle.chain打印过日志后,我们又返回了一个dataBuffer,用作向下传递,否则dataBuffer被读取过一次后就不能继续使用了。RequestParamsHandle.java这个类主要用来读取dataBuffer并做了日志打印处理,也可以做一些其他的例如参数校验等使用。
用户评论