spring-gateway基本使用

发布时间 2023-12-18 00:08:56作者: ccblblog

1、配置依赖坐标

配置依赖管理

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

配置spring-gateway坐标

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

2、配置网关信息

配置应用名称 路由相关信息

server:
  port: 88
spring:
  application:
    name: gulimall-gateway
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
    gateway:
      routes:
        - id: test_route_baidu
          uri: https://baidu.com
          predicates:
            - Query=url, baidu

        - id: test_route_qq
          uri: https://qq.com
          predicates:
            - Query=url, qq

上边配置了两个路由信息,当访问参数中携带url=baidui是跳转到百度页面,当url=qq时跳转到qq页面
http://localhost:88/?url=baidu http://localhost:88/?url=qq

3、网关基本说明

网关由 route、Predicate、Filter三部分组成

Route(路由): 网关的基本构件。它由一个ID、一个目的地URI、一个谓词(Predicate)集合和一个过滤器(Filter)集合定义。如果集合谓词为真,则路由被匹配。

Predicate(谓词): 这是一个 Java 8 Function Predicate。输入类型是 Spring Framework ServerWebExchange。这让你可以在HTTP请求中的任何内容上进行匹配,比如header或查询参数。

Filter(过滤器): 这些是 GatewayFilter 的实例,已经用特定工厂构建。在这里,你可以在发送下游请求之前或之后修改请求和响应。

image

具体信息请参考 https://springdoc.cn/spring-cloud-gateway/