5.3. WebFlux でのリアクティブ Spring Boot HTTP サービスの作成


Spring Boot および WebFlux を使用して、基本的なリアクティブ Hello World HTTP Web サービスを作成します。

前提条件

手順

  1. vertx-spring-boot-starter-http をプロジェクトの pom.xml ファイルに依存関係として追加します。

    pom.xml

    <project>
    ...
      <dependencies>
      ...
        <dependency>
          <groupId>dev.snowdrop</groupId>
          <artifactId>vertx-spring-boot-starter-http</artifactId>
        </dependency>
      ...
      <dependencies>
    ...
    </project>
    Copy to Clipboard Toggle word wrap

  2. アプリケーションのメインクラスを作成し、ルーターおよびハンドラーメソッドを定義します。

    HttpSampleApplication.java

    package dev.snowdrop.vertx.sample.http;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.Bean;
    import org.springframework.web.reactive.function.server.RouterFunction;
    import org.springframework.web.reactive.function.server.ServerRequest;
    import org.springframework.web.reactive.function.server.ServerResponse;
    import reactor.core.publisher.Mono;
    
    import static org.springframework.web.reactive.function.BodyInserters.fromObject;
    import static org.springframework.web.reactive.function.server.RouterFunctions.route;
    import static org.springframework.web.reactive.function.server.ServerResponse.ok;
    
    @SpringBootApplication
    public class HttpSampleApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(HttpSampleApplication.class, args);
        }
    
        @Bean
        public RouterFunction<ServerResponse> helloRouter() {
            return route()
                .GET("/hello", this::helloHandler)
                .build();
        }
    
        private Mono<ServerResponse> helloHandler(ServerRequest request) {
            String name = request
                .queryParam("name")
                .orElse("World");
            String message = String.format("Hello, %s!", name);
    
            return ok()
                .body(fromObject(message));
        }
    }
    Copy to Clipboard Toggle word wrap

  3. オプション: アプリケーションをローカルで実行し、テストします。

    1. Maven プロジェクトのルートディレクトリーへ移動します。

      $ cd myApp
      Copy to Clipboard Toggle word wrap
    2. アプリケーションをパッケージ化します。

      $ mvn clean package
      Copy to Clipboard Toggle word wrap
    3. コマンドラインからアプリケーションを起動します。

      $ java -jar target/vertx-spring-boot-sample-http.jar
      Copy to Clipboard Toggle word wrap
    4. 新しいターミナルウィンドウで、/hello エンドポイントで HTTP 要求を発行します。

      $ curl localhost:8080/hello
      Hello, World!
      Copy to Clipboard Toggle word wrap
    5. カスタム名と、パーソナルな応答を取得するために要求を指定します。

      $ curl http://localhost:8080/hello?name=John
      Hello, John!
      Copy to Clipboard Toggle word wrap

その他のリソース

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat