千家信息网

SpringCloud gateway怎么修改返回数据

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,本篇内容介绍了"SpringCloud gateway怎么修改返回数据"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读
千家信息网最后更新 2026年11月04日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安全错误 数据库的锁怎样保障安全 广东万易互联网科技有限公司惠州分公司 北京路客互联网科技有限公司 互联网科技公司税收优惠 互联网科技未来 青岛中康互联网医疗科技有限公司 中国科技互联网公司收入 互联网企业和科技型企业 崇明区互联网教育科技诚信经营 互联网科技公司有风险吗 注册互联网科技公司经营范围大全 互联网科技如何创业 山东子淼互联网科技有限公司 沐思想互联网科技有限公司 互联网金融科技元年 广州千川互联网科技有限公司 互联网科技快讯热点 广州有谷有贝互联网科技有限公司 青岛易易互联网科技 长沙易易互联网科技有限公司 高科技和互联网的现代国家 互联网科技公司怎么样 亿策互联网科技 齐家互联网科技有限公司 甘肃拓世互联网科技有限公司 互联网科技公司的市场部门 银川新华互联网科技学校地址 岳阳华臻互联网科技有限公司 湖南一路畅行互联网科技 南博望互联网科技有限公司 科技赋能视角下互联网保险发展
0