一 两种路由配置方式
1 方法一:通过配置文件配置,在resources/application.yaml中配置
具体的配置方法如下:
1 2 3 4 5 6 7 8 9 10 11
| spring: cloud: gateway: routes: - id: business-server uri: http://localhost:9999 predicates: - Path=/business/** filters: - RewritePath=/business(?<segment>.*), /api$\{segment}
|
2 方法二:通过api方式配置路由
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| package com.qicoder.gateway;
import org.springframework.cloud.gateway.route.RouteLocator; import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;
@Configuration public class GatewayConfig { @Bean public RouteLocator routes(RouteLocatorBuilder builder) { return builder.routes() .route("business-server", r -> r.path("/business/**") .filters(f -> f.rewritePath("/business(?<segment>.*)", "/api${segment}")) .uri("http://localhost:9999")) .build(); } }
|
通过以上两种方式,都可以使路由生效。
但是在实际生产实践中,我们一般很少通过操作api来配置路由。
我们一般是通过配置的方式来配置路由,好处是更加灵活,调整路由不需要改动代码,修改配置即可。
但以上结论也并非绝对,针对一些大公司,路由可能非常复杂,并且路由规则是在外部存储中保存的,便于做后台管理界面去管理这些路由,针对这种情况,还是会通过api的方式来配置路由。