IntelliJ IDEA 2026.1 Help

Reactive Streams

Reactive Streams プラグインをインストールする},{

この機能は、インストールして有効化する必要がある Reactive Streams プラグインに依存しています。},{

  1. Ctrl+Alt+S を押して設定を開き、 プラグイン を選択します。

  2. Marketplace タブを開き、 Reactive Streams プラグインを見つけて、 インストール をクリックします(プロンプトが表示されたら、IDE を再起動します)。},{

Reactive Streams(英語) は、ノンブロッキングバックプレッシャを使用した非同期ストリーム処理の仕様です。 IntelliJ IDEA は、Reactive Streams に基づく次の非ブロッキングリアクティブ Java フレームワークのサポートを提供します。

リアクティブアプリケーションのサポートには、コード補完、インスペクション、クイックフィックス、専用のデバッグモードが含まれます。

Reactor サポートを追加

プロジェクトに Reactor サポートを追加する方法はいくつかあります。Maven または Gradle プロジェクトのビルドファイルに必要な依存関係を追加するか、Reactor ライブラリを手動でダウンロードできます。 Spring Boot アプリケーションの場合、新しいプロジェクトを作成する際に IntelliJ IDEA で必要な依存関係を追加できます。

Reactor を Maven プロジェクトに追加する

Maven プロジェクトの場合、 部品表 (BOM)(英語) をコアと一緒にインポートすることをお勧めします。これにより、Reactor コンポーネントが正常に機能するようになります。

  1. pom.xml ファイルで、次の依存関係を追加して BOM をインポートします。

    <dependencyManagement> <dependencies> <dependency> <groupId>io.projectreactor<groupId> <artifactId>reactor-bom<artifactId> <version>Dysprosium-SR1<version> <type>pom</type> <scope>import<scope> <dependency> <dependencies> <dependencyManagement>
  2. 次の依存関係を追加して、Reactor をインポートします。

    <dependencies> <dependency> <groupId>io.projectreactor<groupId> <artifactId>reactor-core<artifactId> <dependency> <dependencies>

Reactor を Gradle に追加 (Gradle 5.0 以降)

Gradle プロジェクトの場合、 部品表 (BOM)(英語) をコアと一緒にインポートすることをお勧めします。これにより、Reactor コンポーネントが正常に機能するようになります。

  • build.gradle で、次の依存関係を追加します。

    dependencies { // import BOM implementation platform('io.projectreactor:reactor-bom:Dysprosium-SR1') // add dependencies without a version number implementation 'io.projectreactor:reactor-core' }

Reactor を Gradle に追加 (Gradle 4.x およびそれ以前)

Gradle プロジェクトの場合、 部品表 (BOM)(英語) をコアと一緒にインポートすることをお勧めします。これにより、Reactor コンポーネントが正常に機能するようになります。

以前の Gradle バージョンは BOM をサポートしていませんが、Spring gradle-dependency-management(英語) プラグインを使用して BOM をプロジェクトにインポートできます。

  1. 次のコードを build.gradle に追加して、Gradle プラグインポータルからプラグインを取得します。

    plugins { id "io.spring.dependency-management" version "1.0.6.RELEASE" }
  2. 次のコードを追加して、BOM をインポートします。

    dependencyManagement { imports { mavenBom "io.projectreactor:reactor-bom:Dysprosium-SR1" } }
  3. Reactor サポートを追加します。

    dependencies { compile 'io.projectreactor:reactor-core' }

Reactor ライブラリをプロジェクトに追加する

ネイティブ IDE ビルダーでプロジェクトをビルドする場合、Reactor サポートをライブラリとして追加できます。

  1. メインメニューで、 File | プロジェクト構造 Ctrl+Alt+Shift+S に移動するか、ツールバーの the Project Structure button をクリックします。

  2. ライブラリ を選択し、 the New Project Library button をクリックしてから、 Maven から… を選択します。

  3. 開いたダイアログで、ライブラリアーティファクト io.projectreactor:reactor-core:3.1.06.RELEASE を指定し、 OK をクリックします。

    Maven から Reactor ライブラリを追加する

Reactor で新しい Spring Boot プロジェクトを作成する

  1. IntelliJ IDEA を起動してください。

    'ようこそ' 画面が開いたら、「新規プロジェクト 」をクリックします。

    それ以外の場合は、メインメニューの ファイル(F) | 新規(N) | プロジェクト(P)… に移動します。

  2. 左側のペインから Spring Initializr を選択します。

    • the Configure icon をクリックして、使用するサービスの URL を入力するか、デフォルトのままにします。

    • プロジェクトの名前とロケーションを指定し、プロジェクトのメタデータを構成します。言語、ビルドツールを選択し、アーティファクト ID を指定してください。

    • JDK リストから、プロジェクトで使用する JDK を選択します。

      JDK がコンピューターにインストールされているが、IDE で定義されていない場合は、 JDK を追加 を選択し、JDK ホームディレクトリへのパスを指定します。

      必要な JDK がコンピューターにない場合は、 JDK のダウンロード を選択します。

      プロジェクト JDK のバージョンとは異なる Java バージョンでプロジェクトをビルドする場合は、ここで選択できます。

    Reactor を使用して新しい Spring Boot プロジェクトを作成する

    次へ(N) をクリックします。

  3. ウィザードの次のステップで、 依存関係 リストから Spring リアクティブ Web を選択し、 作成 をクリックします。

    リアクティブ Web 依存関係の指定

Reactor のデバッグモード

Reactor には、非同期コードのデバッグ用に設計されたアセンブリ時インストルメンテーションが含まれています。 Reactor デバッグモードを有効にすると、プログラムが一時停止された後のスタックトレースのより便利なビューを取得できます。 フレームを調べて、特定のパラメーターが Reactive アプリケーションのメソッドに渡された理由を理解できます。

IntelliJ IDEA は Reactor デバッグモードを認識しており、 デバッグ ツールウィンドウの フレーム タブに失敗した操作へのトレースバックを表示します。 さらに、IntelliJ IDEA は、コードを変更せずにデバッグモードを有効にして、デバッグセッションの実行時に必要な呼び出しを行うことができます。

Reactor デバッグモードのオンとオフ

デフォルトでは、Reactor デバッグモードが有効になっています。 これは、開発、テスト、デバッグ中に便利ですが、通常、アプリケーションのパフォーマンスに影響を与えます。

Reactor デバッグモードを構成する

  1. Ctrl+Alt+S を押して設定を開き、 言語 & フレームワーク | Reactive Streams を選択します。

  2. Reactor のデバッグモードを有効化 オプションを有効にして、デバッグの初期化方法の 1 つを選択します。

    • Hooks.onOperatorDebug(): この方法では、すべてのオペレーターのスタックトレースがキャプチャーされますが、時間がかかり、多くのリソースを必要とします。 運用環境ではこのメソッドを使用しないでください。 詳細については、「デバッグモードのアクティブ化(英語) 」を参照してください。

    • ReactorDebugAgent.init(): この Java エージェントを使用すると、実行時に大きな影響を与えることなく、アプリケーションの例外をデバッグできます。 詳細については、「本番環境に対応したグローバルデバッグ(英語) 」を参照してください。

      さらに、エージェントが利用できないときに通知を表示する場合は、 ReactorDebugAgent.init() が呼び出せない場合に通知する を選択します。

    • なし: グローバルデバッグを有効にしていない場合は、このオプションを選択し、コード内で checkpoint() 演算子を使用して、よりきめ細かいアプローチを実現します。 詳細については、 checkpoint() の代替(英語)を参照してください。

  3. Mono/Flux インスタンスを遅延計算値としてレンダリングする オプションを有効にして、デバッグセッションで Mono および Flux 値を評価します。 これにより、次のパラメーターを設定できるようになります。

    • 一度にフェッチする Flux 要素の最大数: Flux から 1 回の get オペレーションで取得する要素の最大数を指定します (デバッグセッションで collectList() をクリックする場合)。

    • タイムアウト後に Mono/Flux 評価を停止: 今後の補完を待つ最大時間。

  4. 変更を適用して、ダイアログを閉じます。

デバッグモードで Mono または Flux をサブスクライブする

リアクティブアプリケーションをデバッグする場合、デバッグセッションで対応するパブリッシャーをサブスクライブすることで、Mono と Flux の値を評価できます。

  1. Mono または Flux を返すメソッドにブレークポイントを設定します。

  2. デバッグセッションを開始します。ツールバーの デバッグ をクリックするか、 Shift+F9 を押してください。

  3. 開いた デバッグ ツールウィンドウで、 デバッガー タブを選択します。

  4. Mono オブジェクトがある場合は、その横にある get() をクリックします。 これにより、パブリッシャーに登録され、 toFuture().get() メソッドを使用して Mono 値が取得されます。

    Flux オブジェクトがある場合は、その横にある collectList() をクリックします。 これにより、パブリッシャーに登録され、 collectList().toFuture().get() メソッドを使用してストリーム要素が取得されます。 フェッチされる要素の数は 100 に制限されています。 最初の 100 要素が表示されたら、リストの最後をダブルクリックしてさらに要素を取得できます。 この制限は 設定 | 言語& フレームワーク | Reactive Streams | 一度にフェッチするFlux 要素の最大数 で構成できます。

デバッグフラックス

高度な Reactor インスペクション

IntelliJ IDEA には、スレッドをブロックしてはならないコードフラグメント内の不適切なスレッドブロックメソッド呼び出しを検出する ノンブロッキングコンテキストでブロッキング呼び出しの可能性あり インスペクションが含まれています。 Reactor サポートは、 subscribeOn() および publishIn() オペレーターを処理することにより、オペレーターがどのスレッドで実行されるかを IntelliJ IDEA がローカルで理解できるようにするオプションも追加します。

インスペクションは、改善できるコードフラグメントを強調しています

このオプションはデフォルトで有効になっています。無効にする場合は、次の手順を実行します。

  1. Ctrl+Alt+S を押して設定を開き、 言語 & フレームワーク | Reactive Streams を選択します。

  2. 高度な解析を使用してノンブロッキングスコープを検出する チェックボックスをオフにし、 OK をクリックして新しい設定を適用します。

@Blocking および @NonBlocking アノテーション

JetBrains アノテーションコレクション(英語)には、Kotlin コルーチンやプロジェクト Reactor または RxJava のリアクティブコードなど、非ブロッキングコンテキストでのブロッキング呼び出しを IntelliJ IDEA が検出するのに役立つ @Blocking および @NonBlocking アノテーションが含まれています。

org.jetbrains:annotations バージョン 22.0.0 以降をプロジェクトの依存関係に追加します。 IntelliJ IDEA は、 Micronaut(英語) および スモールライの反乱(英語)の対応するアノテーションもサポートします。

Reactor での後置補完

IntelliJ IDEA は、Reactor を使用するプロジェクトに接尾辞コード補完を提供します。 後置補完は、すでに入力した式を、入力した内容に基づいて別の式に変換できます。

Reactor をサポートするプロジェクトでは、IDE は適切な reactor.core.publisher.Flux ファクトリまたは reactor.core.publisher.Mono ファクトリで式をラップできます。

Post completion converts an expression in the editor as you type

ビデオチュートリアル

次のビデオは、IntelliJ IDEA で動作する Reactive Spring Boot アプリケーションを作成する方法を示しています。

2026 年 3 月 30 日