spring cloud gateway 入門最好的一個例子


從0開始學習spring  cloud  gateway
1.首先創建一個maven工程
點擊next
輸入對應的值,然后next
 
選擇左邊的spring cloud Routing,選擇gateway,右邊自動出現gateway,點擊next,
發現該工程的名字以及工程所在的位置,點擊finish,到此工程創建成功。
看一下工程的目錄:
 
查看pom文件中依賴信息
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.zhd.springcloud</groupId>
    <artifactId>gatewaytset04</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gatewaytset04</name>
    <description>Demo project for Spring Boot</description>
 
 
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR8</spring-cloud.version>
    </properties>
 
 
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
 
 
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>
 
 
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
 
 
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
 
 
</project>
2.修改application.properties名字,改為application.yml,當然了,你也可以不用修改,
修改后:
3.開始編寫yml配置文件:
server:
  port: 8091
 
4.編寫代碼
package com.zhd.springcloud.gatewaytset04;
 
 
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;
import org.springframework.web.bind.annotation.RestController;
 
 
@RestController
@SpringBootApplication
public class Gatewaytset04Application {
 
 
    public static void main(String[] args) {
        SpringApplication.run(Gatewaytset04Application.class, args);
    }
    //在spring cloud gateway中使用RouteLocator的Bean進行路由轉發,等價於在yml配置文件中的配置
    @Bean
    public RouteLocator myRoutes(RouteLocatorBuilder builder){
        String str = "https://www.cnblogs.com/fulong133";
        return builder.routes()
                //id 表示被轉發到uri地址的id名,
                .route("id",p -> p
                        //predicates,當訪問的連接滿足http://localhost:8091/fulong133   時即轉發到str
                        .path("/fulong133")
                        .uri("https://www.cnblogs.com"))
                .build();
    }
 
 
}
5啟動工程
6然后訪問網址: http://localhost:8091/fulong133
就回到了我的博客
==============================分割線===================================
7.用代碼編寫之外,還可以用yml配置文件實現
把代碼注釋掉
//@RestController
@SpringBootApplication
public class Gatewaytset04Application {
 
 
    public static void main(String[] args) {
        SpringApplication.run(Gatewaytset04Application.class, args);
    }
    //在spring cloud gateway中使用RouteLocator的Bean進行路由轉發,等價於在yml配置文件中的配置
//    @Bean
//    public RouteLocator myRoutes(RouteLocatorBuilder builder){
//        String str = "https://www.cnblogs.com/fulong133";
//        return builder.routes()
//                //id 表示被轉發到uri地址的id名,
//                .route("id",p -> p
//                        //predicates,當訪問的連接滿足http://localhost:8091/fulong133   時即轉發到str
//                        .path("/fulong133")
//                        .uri("https://www.cnblogs.com"))
//                .build();
//    }
 
 
}
然后修改yml文件
# 端口號
server:
  port: 8091
# 配置
spring:
  application:
    # name:后面要有空格
    name: spring-cloud-gateway
  cloud:
    gateway:
      routes:
        - id:  id
          uri: https://www.cnblogs.com
          # 斷言
          predicates:
            # 匹配路徑轉發
            - Path=/fulong133
 
 
 
 
訪問網址:http://localhost:8091/fulong133,然后轉發到我的博客,入門完成了,大家可以根據官方文檔上的其他predicates進行練習,當然還有filter,限流等等。推薦一個網址:方志朋 : https://blog.csdn.net/forezp/article/details/85057268    大家從github上下載代碼或者自己創建工程,然后根據文中信息一步一步來,挺簡單的。看完了點個贊唄~~
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM