SpringCloud Gateway入門
4565 ワード
SpringCloud Gatewayの簡単なルーティング転送の使用について説明します.
SpringCloud Gatewayの概要
SpringCloudはSpring Framework 5,Project Reactor,Spring Boot 2.0に基づいて構築され,zulの代替を目指す.
公式ドキュメント
公式ドキュメントのアドレス:https://cloud.spring.io/spring-cloud-gateway/
Spring Cloud Gatewayは公式文書で次のように紹介されています.
このプロジェクトはSpring MVCの上にAPIゲートウェイを構築するためのライブラリを提供する.Spring Cloud Gatewayは、APIにルーティングし、横断的な注目点を提供するための簡単で効率的な方法を提供することを目的としています.)
導入事例
次に、SpringCloud Gatewayルーティング機能の簡単な使用について説明します(SpringBoot 2.0.0.RELEASEとSpringCloud Finchley.RC 1バージョンを使用します).
プロジェクトの作成
SpringCloud Gatewayに依存するプロジェクトを新規作成します.完全なpomは次のとおりです.
SpringBootメインプログラム
クラス内のルーティングの構成
メインプログラムには,@Bean方式でRouteLocatorをカスタマイズするルーティングを構成する方法が組み込まれている.
プロファイルでの設定:
テストの実行
ここまでくると実は構成が完了しています
アクセスhttp://localhost:8888/dalaoyang 自動的に私のブログのトップページにジャンプしました
アクセスhttp://localhost:8888/jianshu 自動的に私のトップページにジャンプしました
アクセスhttp://localhost:8888/juejin 自動的に私の掘金のトップページにジャンプしました
ソースのダウンロード:楊さんのソース
SpringCloud Gatewayの概要
SpringCloudはSpring Framework 5,Project Reactor,Spring Boot 2.0に基づいて構築され,zulの代替を目指す.
公式ドキュメント
公式ドキュメントのアドレス:https://cloud.spring.io/spring-cloud-gateway/
Spring Cloud Gatewayは公式文書で次のように紹介されています.
このプロジェクトはSpring MVCの上にAPIゲートウェイを構築するためのライブラリを提供する.Spring Cloud Gatewayは、APIにルーティングし、横断的な注目点を提供するための簡単で効率的な方法を提供することを目的としています.)
導入事例
次に、SpringCloud Gatewayルーティング機能の簡単な使用について説明します(SpringBoot 2.0.0.RELEASEとSpringCloud Finchley.RC 1バージョンを使用します).
プロジェクトの作成
SpringCloud Gatewayに依存するプロジェクトを新規作成します.完全なpomは次のとおりです.
4.0.0
com.dalaoyang
springcloud_gateway
0.0.1-SNAPSHOT
jar
springcloud_gateway
springcloud_gateway
org.springframework.boot
spring-boot-starter-parent
2.0.0.RELEASE
UTF-8
UTF-8
1.8
Finchley.RC1
org.springframework.cloud
spring-cloud-starter-gateway
org.springframework.boot
spring-boot-devtools
runtime
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
org.springframework.boot
spring-boot-maven-plugin
SpringBootメインプログラム
クラス内のルーティングの構成
メインプログラムには,@Bean方式でRouteLocatorをカスタマイズするルーティングを構成する方法が組み込まれている.
package com.dalaoyang;
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 SpringcloudGatewayApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudGatewayApplication.class, args);
}
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
return builder.routes()
.route(r -> r.path("/jianshu")
.uri("http://www.jianshu.com/u/128b6effde53")
).build();
}
}
プロファイルでの設定:
server:
port: 8888
spring:
application:
name: gateway-service
cloud:
gateway:
routes:
- id: dalaoyang
uri: http://www.dalaoyang.cn/
predicates:
- Path=/dalaoyang/**
- id: juejin
uri: https://juejin.im/user/5aa50b96f265da23866f836e
predicates:
- Path=/juejin/**
テストの実行
ここまでくると実は構成が完了しています
アクセスhttp://localhost:8888/dalaoyang 自動的に私のブログのトップページにジャンプしました
アクセスhttp://localhost:8888/jianshu 自動的に私のトップページにジャンプしました
アクセスhttp://localhost:8888/juejin 自動的に私の掘金のトップページにジャンプしました
ソースのダウンロード:楊さんのソース