主页 > 开源代码  > 

SpringBoot中引入了springcloud-gateway,路由不生效为什么?

SpringBoot中引入了springcloud-gateway,路由不生效为什么?

今天闲来无事,想看看springcloud-gateway的,于是自开始搭建gateway但是,搭建完成后想验证,发现有问题总会报404,接下来详细说下操作过程,

1.首先创建2个springBoot的工程。一个作为gateway 一个可以作为路由的目标服务,今天我们只说gateway中的配置:

pom文件的配置:

<?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 maven.apache.org/xsd/maven-4.0.0.xsd">     <modelVersion>4.0.0</modelVersion>     <parent>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-parent</artifactId>         <version>2.7.18</version>         <relativePath/> <!-- lookup parent from repository -->     </parent>     <groupId>com.jihaixiang</groupId>     <artifactId>boot-mybatis</artifactId>     <version>0.0.1-SNAPSHOT</version>     <name>boot-mybatis</name>     <description>Demo project for Spring Boot+mybatis</description>     <properties>         <java.version>1.8</java.version>     </properties>     <dependencies>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter</artifactId>         </dependency>

        <dependency>             <groupId>org.springframework.cloud</groupId>             <artifactId>spring-cloud-starter-gateway</artifactId>             <version>3.1.9</version>         </dependency>

        <!-- Spring Boot Web Starter -->         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-webflux</artifactId>         </dependency>

             </dependencies>

    <build>         <plugins>             <plugin>                 <groupId>org.springframework.boot</groupId>                 <artifactId>spring-boot-maven-plugin</artifactId>             </plugin>         </plugins>     </build>

</project> 2.yml文件配置

spring:   application:     name: cloud-gateway   cloud:     gateway:       routes:         - id: example_route222           uri: http://192.168.1.4:8092           predicates:             - Path=/example/**           #filters:             #- StripPrefix=1             #filters:             # - RewritePath=/example/(?<segment>.*), /$\{segment} server:   port: 8091

其中http://192.168.1.4:8092是我的路由目标地址,如何在测试过程中发现并没有路由到http://192.168.1.4:8092,那一定是我们的访问的地址有问题,

比如:当我们http://192.168.1.4:8091/example/test的时候,最终路由到的地址是

http://192.168.1.4:8092/example/tes,那我们就首先要看我们8092的服务端是不是可以直接访问通。

但是如果你配置了 #filters:             #- StripPrefix=1  意味着,如果你访问地址为http://192.168.1.4:8092/example/tes,实际的访问地址就是http://192.168.1.4:8092/tes,因为StripPrefix=1是将example过滤掉了

标签:

SpringBoot中引入了springcloud-gateway,路由不生效为什么?由讯客互联开源代码栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“SpringBoot中引入了springcloud-gateway,路由不生效为什么?