spring-webfluxで現在のリクエストのコンテキストを取得する方法

ドロンゴールド

従来のspring-mvcでは、リクエストスコープの属性をに設定することができますRequestContextHolderこれに基づいて、で着信リクエストを解析し、HandlerInterceptorAdapter現在ログインしているユーザー、一意のリクエストID(ログ相関用)などのリクエストパラメータを設定できます。これらのリクエスト属性は、リクエストの存続期間中、任意のサービス(コントローラーだけでなく)から静的に取得できます

私はspring-webfluxと同様のことを達成しようとしています。

を使用して、WebFilterすべての着信リクエストをインターセプトし、現在のリクエストを取得してServerWebExchange属性を設定できます。ただしServerWebExchange、コントローラーメソッド以外場所で現在のリクエストを取得する方法がわかりません

私はあちこちを通過するServerWebExchange(またはServerHttpRequestよりも良い解決策を探しています

ThreadLocalで特定のリクエストに関連付けられた変数を保存することに依存できないため、これをwebfluxで実現するのは難しいようです(非ブロッキングアーキテクチャのため、単一のスレッドがフライト中にリクエストを切り替えることができます)。
それでも、これは重要な要件です。たぶん別のアプローチがありますか?

ブライアン・クローゼル

あなたが説明しているアプローチは、現在サポートされているものです。下線を引いたように、で静的アプローチを使用するThreadLocalsことはできません。

Reactorは、新しいコンテキスト機能を備えた代替案を検討しています(このPRを参照)。Springはそれを取得して使用する可能性がありますが、現在のモデルは非常によく適合しているため、必ずしもリクエスト属性に使用する必要はありません。

特定の拡張ポイントでリクエストをインターセプトしたい場合は、Spring FrameworkプロジェクトでJIRAの問題を作成し、達成しようとしていることと失敗している場所を説明してください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Spring webfluxフィルター:クエリ実行後にreactorコンテキストを取得する方法は?

分類Dev

Spring WebFluxでリクエストとレスポンスの本文を記録する方法

分類Dev

Spring WebFluxでリクエストとレスポンスの本文を記録する方法

分類Dev

Spring WebFluxでリクエストとレスポンスの本文を記録する方法

分類Dev

Spring-webflux、@ ExceptionHandlerのパラメーターとしてリクエストを取得する方法

分類Dev

Spring-webflux、@ ExceptionHandlerのパラメーターとしてリクエストを取得する方法

分類Dev

Spring-WebFlux Fluxがコンテキストで失敗する

分類Dev

Spring WebFlux-リクエストからデータを取得する方法は?

分類Dev

Springでリクエストスコープのコンテキストを使用した認証

分類Dev

Springコンテキストの初期化エラーを制御する方法

分類Dev

Spring MVCコントローラーのセキュリティコンテキストからUserDetailsオブジェクトを取得する

分類Dev

Spring Boot FilterでHTTPリクエストの本文のコンテンツを取得するにはどうすればよいですか?

分類Dev

Spring Boot統合テスト-単一のコンテキストで複数のテストクラスを実行する方法

分類Dev

Spring BootとJPAを使用してGETリクエストで1対多のエンティティをすべて取得する方法

分類Dev

Spring BootとJPAを使用してGETリクエストで1対多のエンティティをすべて取得する方法

分類Dev

Spring XMLコンテキストで条件付きリソースのインポートを実現するにはどうすればよいですか?

分類Dev

Spring MVCの<mvc:resources>タグをJavaアプリケーションコンテキストで使用する方法

分類Dev

Spring-アクセストークンのみを保存するためのリクエストコンテキストまたはセキュリティコンテキスト?

分類Dev

Spring Cloud Sleuthは、ボックスのWebflux oufでMDCコンテキストをどのように伝播して、そのコンテンツをさまざまなスレッドに記録できるようにしますか?

分類Dev

JSON要件に応じてSpring RESTコントローラーでリクエストを取得する方法は?

分類Dev

Spring Webfluxが並行して256リクエストのみを受け入れるのはなぜですか?

分類Dev

SpringBoot-Springコンテキストなしでユーティリティクラスをテストする

分類Dev

Springコントローラーでリクエストの発信元と本文をリクエストする方法

分類Dev

Java Springの異なるリクエスト間でSETの同じインスタンスを使用する方法

分類Dev

testngの@BeforeTestでSpringコンテキストにアクセスする

分類Dev

Spring webfluxアプリケーションがすべてのリクエストで一時ファイルを作成するのはなぜですか?

分類Dev

オブジェクトをデータベースから取得せずにSpringの永続コンテキストに追加する方法はありますか?

分類Dev

SpringブートコントローラーがAJAX DELETEリクエストからnullデータを取得するのを修正する方法

分類Dev

外部ライブラリのSpringファイルからSpringコンテキストをロードする方法

Related 関連記事

  1. 1

    Spring webfluxフィルター:クエリ実行後にreactorコンテキストを取得する方法は?

  2. 2

    Spring WebFluxでリクエストとレスポンスの本文を記録する方法

  3. 3

    Spring WebFluxでリクエストとレスポンスの本文を記録する方法

  4. 4

    Spring WebFluxでリクエストとレスポンスの本文を記録する方法

  5. 5

    Spring-webflux、@ ExceptionHandlerのパラメーターとしてリクエストを取得する方法

  6. 6

    Spring-webflux、@ ExceptionHandlerのパラメーターとしてリクエストを取得する方法

  7. 7

    Spring-WebFlux Fluxがコンテキストで失敗する

  8. 8

    Spring WebFlux-リクエストからデータを取得する方法は?

  9. 9

    Springでリクエストスコープのコンテキストを使用した認証

  10. 10

    Springコンテキストの初期化エラーを制御する方法

  11. 11

    Spring MVCコントローラーのセキュリティコンテキストからUserDetailsオブジェクトを取得する

  12. 12

    Spring Boot FilterでHTTPリクエストの本文のコンテンツを取得するにはどうすればよいですか?

  13. 13

    Spring Boot統合テスト-単一のコンテキストで複数のテストクラスを実行する方法

  14. 14

    Spring BootとJPAを使用してGETリクエストで1対多のエンティティをすべて取得する方法

  15. 15

    Spring BootとJPAを使用してGETリクエストで1対多のエンティティをすべて取得する方法

  16. 16

    Spring XMLコンテキストで条件付きリソースのインポートを実現するにはどうすればよいですか?

  17. 17

    Spring MVCの<mvc:resources>タグをJavaアプリケーションコンテキストで使用する方法

  18. 18

    Spring-アクセストークンのみを保存するためのリクエストコンテキストまたはセキュリティコンテキスト?

  19. 19

    Spring Cloud Sleuthは、ボックスのWebflux oufでMDCコンテキストをどのように伝播して、そのコンテンツをさまざまなスレッドに記録できるようにしますか?

  20. 20

    JSON要件に応じてSpring RESTコントローラーでリクエストを取得する方法は?

  21. 21

    Spring Webfluxが並行して256リクエストのみを受け入れるのはなぜですか?

  22. 22

    SpringBoot-Springコンテキストなしでユーティリティクラスをテストする

  23. 23

    Springコントローラーでリクエストの発信元と本文をリクエストする方法

  24. 24

    Java Springの異なるリクエスト間でSETの同じインスタンスを使用する方法

  25. 25

    testngの@BeforeTestでSpringコンテキストにアクセスする

  26. 26

    Spring webfluxアプリケーションがすべてのリクエストで一時ファイルを作成するのはなぜですか?

  27. 27

    オブジェクトをデータベースから取得せずにSpringの永続コンテキストに追加する方法はありますか?

  28. 28

    SpringブートコントローラーがAJAX DELETEリクエストからnullデータを取得するのを修正する方法

  29. 29

    外部ライブラリのSpringファイルからSpringコンテキストをロードする方法

ホットタグ

アーカイブ