第一步
在你的springboot下的pom文件中加入maven依赖
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
</dependencies>
第二步
在你的springboot项目下配置文件中(bootstrap.yml)添加gateway的配置信息
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8761/eureka/ #将网关服务注册到注册中心
spring:
application:
name: service-gateway
cloud:
gateway:
routes:
- id: api-a
uri: http://localhost:8888 #uri:目标服务地址
predicates:
- Path=/api-a/**
filters: #filters:过滤规则
- StripPrefix=1
- id: api-b # 区分不同功能
uri: lb://service-demo #lb://开头(lb代表从注册中心获取服务)服务名称
predicates:
- Path=/api-b/** #去掉api-a,只保留**部分
filters:
- StripPrefix=1
配置方式二
可以使用启动类进行路由配置规则
/**
* gateway 方式实现
*/
@SpringBootApplication
public class ServiceGatewayApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceGatewayApplication.class, args);
}
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
StripPrefixGatewayFilterFactory.Config config =
new StripPrefixGatewayFilterFactory.Config();
config.setParts(1);
return builder.routes()
.route("api-a", r -> r.path("/api-a/**")
.filters(f -> f.stripPrefix(1))
.uri("http://localhost:8888"))
.route("api-b", r -> r.path("/api-b/**").
filters(f -> f.stripPrefix(1)).
uri("lb://service-demo"))
.build();
}
}
下面你就可以通过启动项目,进行测试了。