一. pom配置


首先SpringCloud和nacos依赖,这里不再展示。然后导入gateway坐标:

  1. <!-- spring-cloud-starter-gateway -->
  2. <dependency>
  3. <groupId>org.springframework.cloud</groupId>
  4. <artifactId>spring-cloud-starter-gateway</artifactId>
  5. </dependency>

二. 配置yml文件


示例:

  1. server:
  2. port: 8080
  3. spring:
  4. application:
  5. #服务名
  6. name: api-gateway-nacos
  7. cloud:
  8. nacos:
  9. discovery:
  10. server-addr: ip:8848 # 配置nacos 服务端地址
  11. gateway:
  12. routes:
  13. - id: server-jwt #server-jwt模块的应用名
  14. uri: lb://server-jwt
  15. predicates:
  16. - Path=/jwt/** #后续访问直接访问网关ip地址:网关的端口/jwt/接口名
  17. filters:
  18. - StripPrefix=1 #转发之前去掉1层路径

三. 启动类


  1. @SpringBootApplication
  2. @EnableDiscoveryClient
  3. public class ApiGatewayApplication {
  4. public static void main(String[] args) {
  5. SpringApplication.run(ApiGatewayApplication.class,args);
  6. }
  7. }

四. 问题汇总

4.1 springboot gateway与spring-boot-starter-web冲突问题解决


测试发现spring-cloud-starter-gateway中,整合了其他服务所需要的spring-boot-starter-web包,只需要在在父pom文件中引入spring-cloud-starter-gateway即可 。