GateWay的网关路由 有两种配置方式:
- 通过 application.yml 进行配置
- 通过 java代码 的方式进行配置
这一章将探讨通过 java代码的方式 配置路由。
package com.banana.springcloud.config;
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;
/**
* 以编码的方式实现路由
* 官网:https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1.RELEASE/reference/html/#gatewayfilter-factories
* @author layman
* @date 2021/1/19
*/
@Configuration
public class GateWayConfig {
/**
* 配置一个ID为 first 的路由规则
* 当访问地址:http://localhost:9527/guonei 时会自动转发到地址 http://news.baidu.com/guonei
* @param routeLocatorBuilder
* @return RouteLocator
*/
@Bean
public RouteLocator CustomerRouteLocatorFirst(RouteLocatorBuilder routeLocatorBuilder){
RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
routes.route("first",r->r.path("/guonei").uri("http://news.baidu.com/guonei")).build();
return routes.build();
}
/**
* 配置一个ID为 second 的路由规则
* 当访问地址:http://localhost:9527/guoji 时会自动转发到地址 http://news.baidu.com/guoji
*/
@Bean
public RouteLocator CustomerRouteLocatorSecond(RouteLocatorBuilder routeLocatorBuilder){
RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
routes.route("second",r->r.path("/guoji").uri("http://news.baidu.com/guoji")).build();
return routes.build();
}
}
可以看到,用编码的方式 实现路由,由于地址是写死的,不能够进行更改,用起来非常的不方便。
所以,通过编码的方式实现路由,仅用作参考。
主流的,还是通过yml文件进行配置,一目了然,方便统一管理,而且还支持动态刷新。