spring cloud gateway配置路由的两种方式

博客介绍了Spring Cloud Gateway配置路由的两种方式,涉及Spring Boot 2.3.5和Spring Cloud Hoxton.RELEASE版本。使用Gateway需排除Boot的web依赖,否则启动报错,还提及了pom.xml和启动类,具体配置方式有yml文件配置和代码配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring cloud gateway配置路由的两种方式

spring boot 2.3.5
spring cloud Hoxton.RELEASE
使用gateway需要排除掉boot的web依赖,不然会启动报错

pom.xml

  		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

启动类

@SpringBootApplication
@EnableEurekaClient
public class GatewayApplication {
    public static void main(String[] args) {
        SpringApplication.run(GatewayApplication.class,args);
    }
}

配置路由方式一:yml文件配置

server:
  port: 8094
spring:
  application:
    name: base-gateway-service
  cloud:
    gateway:
      routes:
        - id: demo  #相当于主键 多个需要保证唯一
#          uri: http://localhost:8087  #映射得地址
          uri: https://www.baidu.com  #映射得地址
          predicates:
            - Path=/demo/payment/**   #接口url
          filters:
            ## 添加指定参数
            - AddRequestParameter=name, zhangsan
            - AddRequestHeader=header, lisi
eureka:
  client:
    serviceUrl:
      #      eureka的注册中心地址
      #      defaultZone: http://eureka9999.com:9999/eureka/,http://eureka9998.com:9998/eureka/,http://eureka9997.com:9997/eureka/
      defaultZone: http://eureka9998.com:9998/eureka/

第二种配置方式:代码方式

/**
 * @version 1.0
 * @Classname GatewayConfig
 * @Date 2020/12/29 16:28
 * @Created <a href="mailto:648267940@qq.com">zgc</a>
 * @Describe Gateway代码配置方式
 */
@Configuration
public class GatewayConfig {

    @Bean
    public RouteLocator routeLocator(RouteLocatorBuilder routeLocatorBuilder) {
        RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
        /**
         * route:
         * 参数一类似与数据库主键,非重复得标识位
         * 参数二对应断言得请求路径,可以有多个
         * 参数三对应断言结果,如果为true则跳转映射uri中
         */
        routes.route(UUID.randomUUID().toString(), predicateSpec -> predicateSpec.path("/demo/xxx1", "/demo/xxx2").uri("https://www.baidu.com"));
        return routes.build();
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值