クラス ReactorResourceFactory

java.lang.ObjectSE
org.springframework.http.client.ReactorResourceFactory
実装されたすべてのインターフェース:
AwareDisposableBeanInitializingBeanApplicationContextAwareLifecyclePhasedSmartLifecycle
既知の直属サブクラス
ReactorResourceFactory

public class ReactorResourceFactory extends ObjectSE implements ApplicationContextAware, InitializingBean, DisposableBean, SmartLifecycle
Spring ApplicationContext のライフサイクル内で Reactor Netty リソース(イベントループスレッドの LoopResources、接続プールの ConnectionProvider など)を管理するファクトリ。

このファクトリは SmartLifecycle を実装し、通常は Spring 管理の Bean として宣言されることが予想されます。

SmartLifecycle の停止 / 再起動後、構成された LoopResources および ConnectionProvider の新しいインスタンスが作成されるため、それらへの参照を更新する必要があることに注意してください。

導入:
6.1
作成者:
Rossen Stoyanchev, Brian Clozel, Sebastien Deleuze, Juergen Hoeller
  • フィールドサマリー

    インターフェース org.springframework.context.SmartLifecycle から継承されたフィールド

    DEFAULT_PHASE
  • コンストラクターのサマリー

    コンストラクター
    コンストラクター
    説明
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    addGlobalResourcesConsumer(ConsumerSE<reactor.netty.http.HttpResources> consumer)
    起動時にグローバル Reactor Netty リソースを構成するためのコンシューマーを追加します。
    void
    ApplicationContext の外部で初期化された場合はリソースを起動します。
    void
    ApplicationContext の外部で初期化された場合はリソースを停止します。
    reactor.netty.resources.ConnectionProvider
    設定された ConnectionProvider を返します。
    reactor.netty.resources.LoopResources
    設定された LoopResources を返します。
    int
    このライフサイクルオブジェクトが実行されるはずのフェーズを返します。
    boolean
    このコンポーネントが現在実行されているかどうかを確認します。
    boolean
    このファクトリがグローバル HttpResources ホルダーを公開するかどうか。
    void
    ApplicationContext の設定はオプションです。設定すると、Reactor リソースは lifecycle start フェーズで初期化され、lifecycle stop フェーズで閉じられます。
    void
    setConnectionProvider(reactor.netty.resources.ConnectionProvider connectionProvider)
    これは、外部で管理されている ConnectionProvider インスタンスを提供する場合に使用します。
    void
    setConnectionProviderSupplier(SupplierSE<reactor.netty.resources.ConnectionProvider> supplier)
    グローバルリソースに参加したくない場合や、管理対象の ConnectionProvider の作成をカスタマイズしたい場合に、これを使用します。
    void
    setLoopResources(reactor.netty.resources.LoopResources loopResources)
    このオプションは、外部で管理されている LoopResources インスタンスを提供する場合に使用します。
    void
    setLoopResourcesSupplier(SupplierSE<reactor.netty.resources.LoopResources> supplier)
    グローバルリソースに参加したくない場合や、管理対象の LoopResources の作成をカスタマイズしたい場合に、これを使用します。
    void
    setShutdownQuietPeriod(DurationSE shutdownQuietPeriod)
    リソースをシャットダウンする前に待機する時間を設定します。
    void
    shutdownQuietPeriod 中にタスクが送信されたかどうかに関係なく、基になるリソースが破棄されるまで待機する最大時間を構成します。
    void
    setUseGlobalResources(boolean useGlobalResources)
    HttpResources を介してグローバル Reactor Netty リソースを使用するかどうか。
    void
    このコンポーネントを起動します。
    void
    このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE

    インターフェース org.springframework.context.SmartLifecycle から継承されたメソッド

    isAutoStartup, stop
  • コンストラクターの詳細

    • ReactorResourceFactory

      public ReactorResourceFactory()
  • メソッドの詳細

    • setUseGlobalResources

      public void setUseGlobalResources(boolean useGlobalResources)
      HttpResources を介してグローバル Reactor Netty リソースを使用するかどうか。

      デフォルトは "true" です。この場合、このファクトリは Spring の ApplicationContext ライフサイクル内のグローバル Reactor Netty リソースを初期化および停止します。"false" に設定すると、ファクトリはグローバルリソースから独立してリソースを管理します。

      パラメーター:
      useGlobalResources - グローバルリソースを公開および管理するかどうか
      関連事項:
    • isUseGlobalResources

      public boolean isUseGlobalResources()
      このファクトリがグローバル HttpResources ホルダーを公開するかどうか。
    • addGlobalResourcesConsumer

      public void addGlobalResourcesConsumer(ConsumerSE<reactor.netty.http.HttpResources> consumer)
      起動時にグローバル Reactor Netty リソースを構成するためのコンシューマーを追加します。このオプションを使用すると、setUseGlobalResources(boolean) も有効になります。
      パラメーター:
      consumer - 適用するコンシューマー
      関連事項:
    • setConnectionProviderSupplier

      public void setConnectionProviderSupplier(SupplierSE<reactor.netty.resources.ConnectionProvider> supplier)
      グローバルリソースに参加したくない場合や、管理対象の ConnectionProvider の作成をカスタマイズしたい場合に、これを使用します。

      デフォルトでは、ConnectionProvider.elastic("http") が使用されます。

      userGlobalResources=false または setConnectionProvider(ConnectionProvider) が設定されている場合、このオプションは無視されることに注意してください。

      パラメーター:
      supplier - 使用するサプライヤー
    • setConnectionProvider

      public void setConnectionProvider(reactor.netty.resources.ConnectionProvider connectionProvider)
      これは、外部で管理されている ConnectionProvider インスタンスを提供する場合に使用します。
      パラメーター:
      connectionProvider - そのまま使用する接続プロバイダー
    • getConnectionProvider

      public reactor.netty.resources.ConnectionProvider getConnectionProvider()
      設定された ConnectionProvider を返します。

      まだ初期化されていない場合は、オンデマンドでリソースを遅延的に起動しようとします。

      関連事項:
    • setLoopResourcesSupplier

      public void setLoopResourcesSupplier(SupplierSE<reactor.netty.resources.LoopResources> supplier)
      グローバルリソースに参加したくない場合や、管理対象の LoopResources の作成をカスタマイズしたい場合に、これを使用します。

      デフォルトでは、LoopResources.create("webflux-http") が使用されます。

      userGlobalResources=false または setLoopResources(LoopResources) が設定されている場合、このオプションは無視されることに注意してください。

      パラメーター:
      supplier - 使用するサプライヤー
    • setLoopResources

      public void setLoopResources(reactor.netty.resources.LoopResources loopResources)
      このオプションは、外部で管理されている LoopResources インスタンスを提供する場合に使用します。
      パラメーター:
      loopResources - そのまま使用するループリソース
    • getLoopResources

      public reactor.netty.resources.LoopResources getLoopResources()
      設定された LoopResources を返します。

      まだ初期化されていない場合は、オンデマンドでリソースを遅延的に起動しようとします。

      関連事項:
    • setShutdownQuietPeriod

      public void setShutdownQuietPeriod(DurationSE shutdownQuietPeriod)
      リソースをシャットダウンする前に待機する時間を設定します。shutdownQuietPeriod 中にタスクが送信された場合、そのタスクは受け入れられることが保証され、shutdownQuietPeriod が最初からやり直します。

      デフォルトでは、これは 2 秒の LoopResources.DEFAULT_SHUTDOWN_QUIET_PERIOD に設定されていますが、システムプロパティ ReactorNetty.SHUTDOWN_QUIET_PERIOD でオーバーライドすることもできます。

      関連事項:
    • setShutdownTimeout

      public void setShutdownTimeout(DurationSE shutdownTimeout)
      shutdownQuietPeriod 中にタスクが送信されたかどうかに関係なく、基になるリソースが破棄されるまで待機する最大時間を構成します。

      デフォルトでは、これは 15 秒の LoopResources.DEFAULT_SHUTDOWN_TIMEOUT に設定されていますが、システムプロパティ ReactorNetty.SHUTDOWN_TIMEOUT でオーバーライドすることもできます。

      関連事項:
    • setApplicationContext

      public void setApplicationContext(ApplicationContext applicationContext)
      ApplicationContext の設定はオプションです。設定されている場合、Reactor リソースは lifecycle start フェーズで初期化され、lifecycle stop フェーズで閉じられます。設定されていない場合は、それぞれ afterPropertiesSet()destroy() で実行されます。
      次で指定:
      インターフェース ApplicationContextAwaresetApplicationContext 
      パラメーター:
      applicationContext - このオブジェクトによって使用される ApplicationContext オブジェクト
      関連事項:
    • afterPropertiesSet

      public void afterPropertiesSet()
      ApplicationContext の外部で初期化された場合、リソースを起動します。これは下位互換性のためです。推奨される方法は、ApplicationContext の lifecycle management に依存することです。
      次で指定:
      インターフェース InitializingBeanafterPropertiesSet 
      関連事項:
    • destroy

      public void destroy()
      ApplicationContext の外部で初期化された場合、リソースを停止します。これは下位互換性のためです。推奨される方法は、ApplicationContext の lifecycle management に依存することです。
      次で指定:
      インターフェース DisposableBeandestroy 
      関連事項:
    • start

      public void start()
      インターフェースからコピーされた説明: Lifecycle
      このコンポーネントを起動します。

      コンポーネントがすでに実行されている場合は、例外をスローしないでください。

      コンテナーの場合、これは適用されるすべてのコンポーネントに開始信号を伝播します。

      次で指定:
      インターフェース Lifecyclestart 
      関連事項:
    • stop

      public void stop()
      インターフェースからコピーされた説明: Lifecycle
      このメソッドを返すとコンポーネントが完全に停止するように、通常は同期的にこのコンポーネントを停止します。非同期停止動作が必要な場合は、SmartLifecycle とその stop(Runnable) バリアントの実装を検討してください。

      この停止通知は破棄前に送信されるとは限らないことに注意してください。通常のシャットダウンでは、一般的な破棄コールバックが伝播される前に、Lifecycle Bean は最初に停止通知を受信します。ただし、コンテキストの存続期間中のホットリフレッシュまたは中断されたリフレッシュ試行では、特定の Bean の destroy メソッドが、停止信号を事前に考慮することなく呼び出されます。

      コンポーネントが実行されていない(まだ開始されていない)場合は、例外をスローしないでください。

      コンテナーの場合、これは停止信号を適用するすべてのコンポーネントに伝播します。

      次で指定:
      インターフェース Lifecyclestop 
      関連事項:
    • isRunning

      public boolean isRunning()
      インターフェースからコピーされた説明: Lifecycle
      このコンポーネントが現在実行されているかどうかを確認します。

      コンテナーの場合、これは、適用されるすべてのコンポーネントが現在実行されている場合にのみ、true を返します。

      次で指定:
      インターフェース LifecycleisRunning 
      戻り値:
      コンポーネントが現在実行中かどうか
    • getPhase

      public int getPhase()
      インターフェースからコピーされた説明: SmartLifecycle
      このライフサイクルオブジェクトが実行されるはずのフェーズを返します。

      デフォルトの実装は、通常の Lifecycle 実装の前に stop() コールバックを実行できるようにするために SmartLifecycle.DEFAULT_PHASE を返します。

      次で指定:
      インターフェース PhasedgetPhase 
      次で指定:
      インターフェース SmartLifecyclegetPhase 
      関連事項: