项目思路

1、建立项目

建立父项目,在父项目下建立子项目gateway,建立common项目。
然后在gateway中导入以下依赖:

      <!--common-->
      <dependency>
          <groupId>com.tkshop</groupId>
          <artifactId>app-common</artifactId>
          <version>1.0.0</version>
      </dependency>
      <!--网关-->
      <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-starter-gateway</artifactId>
          <version>3.1.9</version>
      </dependency>

在common模块中导入以下依赖

        <!--hutool工具包-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.34</version>
        </dependency>
        <!--lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.30</version>
        </dependency>

2、编写网关过滤器

AuthGlobalFilter:AuthGlobalFilter
判断拦截中,需要用到AuthProperties,放于config下AuthProperties
解析token时,需要用到JwtToken,JwtToken
除此之外,还需要编写application.yaml文件

server:
  port: 3000
spring:
  application:
    name: tk-gateway
tk:
  auth:
    excludePaths:
      - /hello

3、配置jwt

4、nacos

建立模块app-api,依赖如下:

    <dependencies>
        <!--open feign-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2021.1</version>
        </dependency>
        <!-- load balancer-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
            <version>4.1.3</version>
        </dependency>
    </dependencies>

注意:spring-cloud-starter-loadbalancer应该放在调用者微服务下,因为调用者微服务要用到负载均衡算法来调用微服务。

在gateway微服务中引入依赖

        <!--nacos discovery-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2021.1</version>
        </dependency>
        <!--负载均衡-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-loadbalancer</artifactId>
            <version>4.1.3</version>
        </dependency>
        <!-- swagger 注解依赖 -->
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>1.6.15</version>
        </dependency>

在application.yaml中配置nacos

spring:
  application:
    name: tk-gateway
  cloud:
    nacos:
      server-addr: localhost:8848  #写nacos服务器所在的真实IP地址

5、编写微服务模块

posted @ 2025-01-19 20:44  徐徐丶  阅读(18)  评论(0)    收藏  举报