项目思路
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地址

浙公网安备 33010602011771号