【Spring实战】31 Spring Boot3 集成 Gateway 微服务网关
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
return builder.routes()
.route("path_route", r -> r.path("/get")
.uri("http://httpbin.org"))
.route("host_route", r -> r.host("*.myhost.org")
.uri("http://httpbin.org"))
.route("rewrite_route", r -> r.host("*.rewrite.org")
.filters(f -> f.rewritePath("/foo/(?<segment>.*)", "/${segment}"))
.uri("http://httpbin.org"))
.build();
}
}
这段代码定义了一个Spring Boot应用程序作为Gateway网关,并通过RouteLocatorBuilder
定义了三条路由规则:
path_route
:匹配路径为/get
的请求,并将请求转发到http://httpbin.org
。host_route
:匹配主机名符合*.myhost.org
模式的请求,并将请求转发到http://httpbin.org
。rewrite_route
:匹配主机名符合*.rewrite.org
模式的请求,并使用rewritePath
过滤器重写路径,然后将请求转发到http://httpbin.org
。
这个例子展示了如何使用Spring Cloud Gateway来定义和配置路由规则,这是构建微服务架构中API网关的一个常见方法。
评论已关闭