中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Cloud Gateway如何構建

發布時間:2022-01-12 09:14:32 來源:億速云 閱讀:169 作者:iii 欄目:云計算

這篇文章主要介紹“Spring Cloud Gateway如何構建”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Spring Cloud Gateway如何構建”文章能幫助大家解決問題。

構建服務端

        使用Spring Boot構建一個簡單的Web應用,外界向網關發送請求后,會轉發到該應用,pom.xml文件內容如下:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.2.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

        編寫啟動類與控制器,提供一個“hello”服務:

@SpringBootApplication
@RestController
public class ServerApp {

    public static void main(String[] args) {
        SpringApplication.run(ServerApp.class, args);
    }

    @GetMapping("/hello")
    public String hello() {
        System.out.println("調用 hello 方法");
        return "hello";
    }
}

        ServerApp中的hello方法,會返回hello字符串,啟動ServerApp,默認使用8080端口,瀏覽器中訪問http://localhost:8080/hello,可看到瀏覽器輸出結果。

構建網關

        新建一個普通的Maven項目,加入Spring Cloud Gateway的依賴,pom.xml內容如下:

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.RC1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-gateway</artifactId>
        </dependency>
    </dependencies>

        為網關項目加入配置文件application.yml,修改服務器端口為9000,配置文件內容如下:

server:
  port: 9000

        添加啟動類,配置一個路由定位器的bean,代碼如下:

@SpringBootApplication
public class RouterApp {

    public static void main(String[] args) {
        SpringApplication.run(RouterApp.class, args);
    }

    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        Function<PredicateSpec, Route.Builder> fn = new Function<PredicateSpec, Route.Builder>() {

            public Route.Builder apply(PredicateSpec t) {
                t.path("/hello");
                return t.uri("http://localhost:8080");
            }
        };
        return builder.routes().route(fn).build();
    }
}

        以上代碼中,使用Spring容器中的RouteLocatorBuilder bean來創建路由定位器,調用Builder的route方法時,傳入java.util.function.Function實例,這是Java8加入的其中一個函數式接口,我們可以使用函數式編程來實現以上的代碼,下面的代碼等價于前面的代碼:

    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
        .route(t -> t.path("/hello")
          .and()
          .uri("http://localhost:8080"))
        .build();
    }

        以上的兩段代碼設定了一個路由規則,當瀏覽器訪問網關的http://localhost:9000/hello地址后,就會路由到http://localhost:8080/hello。

        除了可以路由到我們本例的8080端口外,還可以路由到其他網站,只需要改變一下PredicateSpec的uri即可,例如將.uri("http://localhost:8080")改為.uri(“http://www.163.com”)。

關于“Spring Cloud Gateway如何構建”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兰溪市| 观塘区| 重庆市| 永新县| 利辛县| 东辽县| 凤山市| 上思县| 将乐县| 永寿县| 松阳县| 金塔县| 化德县| 玛纳斯县| 胶南市| 巴青县| 台湾省| 昭觉县| 西畴县| 福州市| 理塘县| 苍山县| 绵竹市| 陵水| 武山县| 泾川县| 周至县| 定边县| 平果县| 莱芜市| 介休市| 右玉县| 高雄县| 田东县| 化隆| 江山市| 秦皇岛市| 桃园县| 建阳市| 萨迦县| 平山县|