springcloud学习笔记(七):gateway网关的全局过滤器配置

本文主要介绍如何在springcloud中配置gateway网关的全局过滤器,实现对全部路由访问请求的拦截、验证、鉴权等。本例使用的springcloud版本为:2021.0.3,springboot版本为:2.6.8。

1、创建gateway网关项目

​ 打开idea新建项目,选择maven,创建springboot项目gateway-6001。

image-20240821135722441

2、pom文件配置

​ 在项目pom中引入spring-cloud-starter-netflix-eureka-client和spring-cloud-starter-gateway依赖:

<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-gateway</artifactId>
    </dependency>
 
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
 
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.68</version>
    </dependency>
 
</dependencies>

3、application.yml文件配置

​ 在项目resources文件夹下创建application.yml文件,并按如下内容进行配置:

server:
  port: 6001
 
eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka
    fetch-registry: true
  instance:
    instance-id: gateway-${server.port}
    prefer-ip-address: true
 
spring:
  application:
    name: gateway
 
  cloud:
    gateway:
      routes:                         # 网关路由配置
      - id: payment                   # 路由id,自定义,只要唯一即可
        uri: lb://PAYMENT-SERVER      # 路由的目标地址 lb就是负载均衡,后面跟服务名称
        predicates:                   # 路由断言,也就是判断请求是否符合路由规则的条件
        - Path=/payment/**            # 这个是按照路径匹配,只要以/payment/开头就符合要求

其中spring.cloud.gateway下未网关路由的配置,id为路由id需要唯一不重复;uri为路由目标地址,lb + 服务名称可以使用负责均衡访问服务;predicates为路由断言;当前配置表示只要以/paymnet/开发的访问就会转发到PAYMENT-SERVER服务。

4、主应用类配置

​ 在项目src/main/java下创建主应用类 GatewayApplication.java,添加注解@EnableEurekaClient、@SpringBootApplication。

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






扫描下方二维码,关注公众号:程序进阶之路,实时获取更多优质文章推送。


扫码关注

评论