搭建spring cloud gateway踩坑指南

1、创建一个springboot项目,依赖如下,springboot版本用的3.1.2

<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.4</version>
</dependency>

application.yml配置如下

server:
  port: 8088

spring:
  cloud:
    gateway:
      routes:
        -id: demo
        uri: https://blog.csdn.net
        predicates:
          - Path=/demo/**
        filters:
            - StripPrefix=1

但是配置中routes下的id、uri等都提示Cannot resolve configuration property
启动不报错,但是网关并没有转发请求,意味着网关配置没生效
启动截图
折腾良久后,依然不行,既然yml配置不行,我改用代码配置
新建配置类

@Configuration
public class GateWayConfig {
    @Bean
    public RouteLocator myRoutes(RouteLocatorBuilder builder){
        return builder.routes()
                //id 表示被转发到uri地址的id名,
                .route("id",p -> p
                        .path("/csdn/**")
                        .filters(f -> f.stripPrefix(1))
                        .uri("https://blog.csdn.net"))
                .build();
    }
}

糟糕,启动报错:
代码配置方式启动报错截图
又折腾良久,怀疑是版本问题,那么,降版本
我把springboot和网关都降到2.2.5.RELEASE
启动正常
降版本后代码配置启动截图
调用接口,成功访问
成功访问截图
那么代码应该没有问题,把代码配置去掉,用yml配置方式看看行不行,
发现不行
降版本yml配置方式访问失败截图
总结:
1、yml配置无法加载问题
折中解决:(有时间再看看为什么yml会无法加载网关的配置,服务端口配置加载正常)
将yml替换成properties格式后,网关正常

spring.cloud.gateway.routes[0].id=demo
spring.cloud.gateway.routes[0].uri=https://blog.csdn.net
spring.cloud.gateway.routes[0].predicates[0]=Path=/demo/**
spring.cloud.gateway.routes[0].filters[0]=StripPrefix=1

server.port=8088

已解决:很2,yml写法有问题,说明对配置还是不熟啊
自行对比和上面的区别

server:
  port: 8088

spring:
  cloud:
    gateway:
      routes:
        - id: demo
          uri: https://blog.csdn.net
          predicates:
            - Path=/demo/**
          filters:
            - StripPrefix=1

2、3.x版本无法自动装配RouteLocatorBuilder问题
解决:
是springboot版本和springcloud版本不对应问题
最新的网关版本是4.0.3,但是适配的springboot最高版本才是3.0.X,因此我把springboot版本降成3.0.6,spring-cloud-starter-gateway版本生成4.0.3,代码配置网关的方式就正常了。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr Yin

您获益,我得意,您打赏,我敬礼

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值