問題タブ [requestscope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
841 参照

java - Spring ブートを使用してリスナー内で @RequestScope アノテーションが付けられたクラスを呼び出す

org.springframework.beans.factory.BeanCreationException: 'scopedTarget.movi​​mentacaoEntradaRadarNotaBuilderImpl' という名前の Bean の作成中にエラーが発生しました: スコープ 'request' は現在のスレッドに対してアクティブではありません。シングルトンから参照する場合は、この Bean のスコープ付きプロキシを定義することを検討してください。ネストされた例外は java.lang.IllegalStateException: No thread-bound request found: 実際の Web 要求の外部で要求属性を参照していますか、または元の受信スレッドの外部で要求を処理していますか? 実際に Web リクエスト内で操作していてもこのメッセージが表示される場合、コードは DispatcherServlet/DispatcherPortlet の外部で実行されている可能性があります。この場合、RequestContextListener または RequestContextFilter を使用して現在のリクエストを公開します。

@RequestScope を削除せずに問題を解決するために何かが必要です。これは、プロジェクト全体ではなく、この場合のみです。

0 投票する
1 に答える
804 参照

spring - Java 継承による @RequestScope アノテーションの動作

クラスがあるとしましょう

上記のクラスを拡張する別のクラス

このクラス B の変数 (A から拡張されている) は、リクエスト スコープの変数ですか?

UPD

私は春のコードを調べていました、それは言います

/** * Constant for the default scope name: {@code ""}, equivalent to singleton * status unless overridden from a parent bean definition (if applicable). */ public static final String SCOPE_DEFAULT = "";

また、

戻り値"singleton"

@RequestScopeしかし、このプロパティの変更でクラスBをマーク""
すると、sigleton再びそうなると思います

0 投票する
1 に答える
171 参照

spring - Spring Bootでcusom grant_typeを使用してOAuth2RestTemplateをキャッシュする方法は?

同様のスレッドを見たことがありますが、カスタムを使用しているという点で私のスレッドは異なりますgrant type。背景を説明すると、別のマイクロサービスからマイクロサービスを呼び出すとき、delegation呼び出しを開始したユーザーの詳細を持つトークンを使用します。したがって、ユーザーU1はS1を呼び出し、S1はS2を呼び出して、 S2が監査と許可の目的でU1の詳細を使用するようにします。

これを実現するために、次の構成がありますOAuth2RestTemplate

ご覧のとおりOAuth2ClientContextrequest範囲内にある必要があります。そうしないと、以前のユーザーの詳細が使用され、2 番目のユーザーに対してトークン生成が行われなくなります。

ただし、これにはパフォーマンスへの影響があります。多くの同時ユーザーがいる場合、その効果はより顕著になります。そのため、解決策として、OAuth2ClientContextキャッシュの有効期限をトークンの有効期限よりも小さい値に設定して、ユーザーごとにキャッシュすることを考えています。各トークンはこのポイントを取得する前に検証されるため、キャッシュの有効期限は実際には問題ではありません。

今問題は、これをどのように達成するか、そして最良の方法は何ですか? 私の理解では、スコープをデフォルトのSpring Beanのスコープのように変更requestsingleton、キャッシュにエントリがないときに新しいインスタンスを作成する必要がありますか? これを行う方法がわかりませんか?