//排除数据源相关的配置 @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
如果gateway.pom文件依赖了公共common.pom而且公共引入了数据源相关的东西就需要如上在启动类排除数据源相关的配置不然会报错
1.依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency>
2.将自己注册进nacos
3.yml配置
spring:
cloud:
gateway:
routes:
# 随便取
- id: baidu_route
# 满足断言规则需要跳转的目录
uri: https://www.baidu.com
# 需要满足的条件。如下:需要请求路径的url中包含baidu就跳转到uri后面的地址
predicates:
- Query=url,baidu
# - id是数组,可以配置多个规则
- id: qq_route
uri: https://www.qq.com
predicates:
- Query=url,qq
4.实际项目
spring:
cloud:
gateway:
routes:
# 随便取
- id: baidu_route
# 满足断言规则需要跳转的目录
uri: https://www.baidu.com
# 需要满足的条件。如下:
# 需要请求路径的url中包含baidu就跳转到uri后面的地址(127.0.0.1:88/hello?url=baidu)
predicates:
- Query=url,baidu
# - id是数组,可以配置多个
- id: qq_route
uri: https://www.qq.com
predicates:
- Query=url,qq
- id: admin_route
# lb:负载均衡到指定的服务(renren-fast)
uri: lb://renren-fast
# 断言:在哪种情况下路由给上面(uri),所有要加断言规则
predicates:
# Path(P一定要大写):指定的路径:如下,当请求带有/api/**的就路由给uri
- Path=/api/**
filters:
# 路径重写:所有的请求都是以api为开始的路径,把api重写成/renren-fast(想要的服务名称)
# 重写前访问:/api/... 重写后访问:/renren-fast/...
- RewritePath=/api/(?<segment>.*),/renren-fast/$\{segment}