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は次のとおりです.


    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 自動的に私の掘金のトップページにジャンプしました
ソースのダウンロード:楊さんのソース