千家信息网

SpringCloud gateway怎么修改返回数据

发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,本篇内容介绍了"SpringCloud gateway怎么修改返回数据"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读
千家信息网最后更新 2025年12月03日SpringCloud gateway怎么修改返回数据

本篇内容介绍了"SpringCloud gateway怎么修改返回数据"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

SpringCloud gateway 修改返回数据

版本说明

开源软件版本
springboot2.1.6.RELEASE
jdk11.0.3

gradle

主要引入了springboot 2.1,lombok

plugins {    id 'org.springframework.boot' version '2.1.6.RELEASE'    id 'java'    id "io.freefair.lombok" version "3.6.6"}apply plugin: 'io.spring.dependency-management'group = 'cn.buddie.demo'version = '0.0.1-SNAPSHOT'sourceCompatibility = '11'repositories {    mavenCentral()}ext {    set('springCloudVersion', "Greenwich.SR2")}dependencies {    implementation 'org.springframework.cloud:spring-cloud-starter-gateway'    compile 'org.projectlombok:lombok:1.18.8'    testImplementation 'org.springframework.boot:spring-boot-starter-test'}dependencyManagement {    imports {        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"    }}

yaml

定义路由及过滤器 test-route路由,当Path为/users时,转到uri中配置的链接http://127.0.0.1:8123/users中。使用UnionResult来过滤

spring:  cloud:    gateway:      enabled: true      routes:      - id: test-route        uri: http://127.0.0.1:8123/users        predicates:        - Path=/users        filters:        - UnionResult

filter

yaml中配置的filter名字,加"GatewayFilterFactory",就是对应的过滤器Java类

package cn.buddie.demo.springcloudgateway.filter;import cn.buddie.demo.springcloudgateway.model.UnionResult;import org.springframework.cloud.gateway.filter.GatewayFilter;import org.springframework.cloud.gateway.filter.factory.rewrite.ModifyResponseBodyGatewayFilterFactory;import org.springframework.cloud.gateway.filter.factory.rewrite.RewriteFunction;import org.springframework.stereotype.Component;import reactor.core.publisher.Mono;/** * description * * @author buddie.wei * @date 2019/7/20 */@Componentpublic class UnionResultGatewayFilterFactory extends ModifyResponseBodyGatewayFilterFactory {    @Override    public GatewayFilter apply(Config config) {        return new ModifyResponseGatewayFilter(this.getConfig());    }    private Config getConfig() {        Config cf = new Config();        // Config.setRewriteFunction(Class inClass, Class outClass, RewriteFunction rewriteFunction)        // inClass 原数据类型,可以指定为具体数据类型,我这里指定为Object,是为了处理多种数据类型。        //                      当然支持多接口返回多数据类型的统一修改,yaml中的配置,path,uri需要做相关调整        // outClass 目标数据类型        // rewriteFunction 内容重写方法        cf.setRewriteFunction(Object.class, UnionResult.class, getRewriteFunction());        return cf;    }    private RewriteFunction getRewriteFunction() {        return (exchange, resp) -> Mono.just(UnionResult.builder().requestId(exchange.getRequest().getHeaders().getFirst("cn-buddie.demo.requestId")).result(resp).build());    }}

model

package cn.buddie.demo.springcloudgateway.model;import lombok.Builder;import lombok.Getter;import lombok.Setter;/** * description * * @author buddie.wei * @date 2019/7/20 */@Getter@Setter@Builderpublic class UnionResult {    private String requestId;    private Object result;}

"SpringCloud gateway怎么修改返回数据"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

数据 类型 内容 配置 更多 版本 知识 路由 过滤器 实用 学有所成 接下来 名字 困境 多种 实际 就是 情况 接口 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 下拉框获取数据库 关系数据库中对外键有限制的操作 人力资源技能数据库 泛网络技术工作室 管理服务器工作怎么做 网络安全系统的一般指标 株洲公安攻防演练网络安全检查 如何有效防范网络安全风险讨论 PMS管理体系 服务器 我的世界服务器时装工坊放置 现代信息技术和网络技术 荣誉勋章ps3服务器关闭 福州市对全国网络安全会议 海南远聚隆互联网科技 我国互联网网络安全形势分析 国产数据库与国际对比 开题报告软件开发类 网络安全法考试2020年 网络安全方面的等保测评 软件开发的发票单位怎么填 北京云丁网络技术 面试 开展护苗网络安全工作总结 2020网络安全立法 怎么搭建一个本地数据库 千峰教育 网络安全答案答案 荆州专业的软件开发价格 软件开发项目审计政策 电子身份证网络安全 期刊数据库技术流视频 网络安全备案请示
0