spring-cloud-starter-gateway-mvc的网关实现
- 游戏开发
- 2025-07-21 19:11:29

一 概括
最近,我也一直在使用SpringCloudGateway开发我们自己的网关产品。根据我对官网文档: docs.spring.io/spring-cloud-gateway/reference/spring-cloud-gateway-server-mvc.html 的理解,内容如下:
SpringCloudGateway的默认底层依赖项是SpringWebflux。我们知道Spring Webflux是异步和响应式编程,并且编程范式是使用流范式编写的;
那么SpringCloudGateway支持同步网关吗?官方支持,官方网站提供了相应的解决方案,即将默认的底层Webflux切换到SpringMVC以支持同步;
相当于SpringCloudGateway为您提供了两种网关路由的底层实现,一种是对应于SpringWebflux的异步实现,另一种是与SpringMVC对应的同步实现。
二 spring-cloud-starter-gateway-mvc例子 1 pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:// .w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.winning.gate</groupId> <artifactId>mvc-gateway</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven piler.source>17</maven piler.source> <maven piler.target>17</maven piler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>2023.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway-mvc</artifactId> </dependency> </dependencies> </project> 2 application.yml: server: port: 9098 3 com.demo.GatewaySampleApplication: package com.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author xch * 2023/12/15 16:56 */ @SpringBootApplication public class GatewaySampleApplication { public static void main(String[] args) { SpringApplication.run(GatewaySampleApplication.class, args); } } 4 com.demo.SimpleGateway package com.demo; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.function.RouterFunction; import org.springframework.web.servlet.function.ServerResponse; import static org.springframework.cloud.gateway.server.mvc.handler.GatewayRouterFunctions.route; import static org.springframework.cloud.gateway.server.mvc.handler.HandlerFunctions.http; /** * @author xch * 2023/12/15 16:52 */ @Configuration class SimpleGateway { @Bean public RouterFunction<ServerResponse> getRoute() { return route().GET("/demo", http("http://localhost:8080/")).build(); } }Above is all the code
5 Request Results GET http://localhost:9098/demo?ceshi=ceshi HTTP/1.1 200 date: Fri, 15 Dec 2023 09:23:37 GMT Content-Type: application/json Transfer-Encoding: chunked Keep-Alive: timeout=60 Connection: keep-alive { "code": 0, "data": "ceshi" } Response file saved. > 2023-12-15T172337.200.json Response code: 200; Time: 19ms (19 ms); Content length: 25 bytes (25 B)The destination service address of the route is in SimpleGateway, you can change it to your own service
spring-cloud-starter-gateway-mvc的网关实现由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“spring-cloud-starter-gateway-mvc的网关实现”