問題タブ [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 に答える
370 参照

java - リクエスト スコープ Bean はレスポンス ボディで使用できません [Spring Boot]

Rest Controller の Response として Request スコープ (プロトタイプ) Bean があり、 Exception を取得していますが、機能していません

エラーメッセージ「Type definition error: [simple type, class org.springframework.context.expression.StandardBeanExpressionResolver]; nested exception is com.fasterxml.jackson」で示唆されているように、プロパティファイルで spring.jackson.serialization.FAIL_ON_EMPTY_BEANS=false を試しました.databind.exc.InvalidDefinitionException: クラス org.springframework.context.expression.StandardBeanExpressionResolver のシリアライザーが見つからず、BeanSerializer を作成するためのプロパティが見つかりません (例外を回避するには、SerializationFeature.FAIL_ON_EMPTY_BEANS を無効にします) (参照チェーンを介して: com.epic.dcms.kyc .beans.MainResponse$$EnhancerBySpringCGLIB$$82085c99[\"targetSource\"]->org.springframework.aop.target.SimpleBeanTargetSource[\"beanFactory\"]->org.springframework.beans.factory.support.DefaultListableBeanFactory[\ "beanExpressionResolver\"])"

機能しなかった場合、循環依存関係があり、例外がスローされました

@RequestScope アノテーションを @scope アノテーションに変更しても問題は解決しませんでした

この例外は、MainResponse が Response として使用された場合にのみ発生することに気付きました。

MainResponse Bean から @RequestScope を削除すると、正常に動作します。これを修正する方法はありますか??

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

java - Spring の @RequestScope は、シングルトン Bean に注入されたときにプロキシを自動的に処理しますか?

Java8/Spring Boot 2 アプリケーションを使用しています。リクエスト スコープの Bean をシングルトン Bean に注入したいと考えています。公式ドキュメントでは、プロキシまたは ObjectFactory/Providerのいずれかを使用して、シングルトン Bean で実行時に正しいスコープの Bean を常に取得する必要があることが強調されています。ただし、 @RequestScope アノテーションは、この質問への回答で説明されているように、ある種のプロキシを「自動的に」設定するようです。

次の 3 つの実装が実際には同一であり、どちらが優先されるのか疑問に思っています。

アプローチ 1: objectFactory<> を明示的に使用する

アプローチ 2: リクエストスコープ Bean が自動的にプロキシされると仮定して、通常どおり注入しますか?

アプローチ 3: @Configuration と @Bean を使用します。違いがわからず、動作が異なるのではないかと心配しているからです。

簡潔でスコープ/プロキシを自動的に処理するため、アプローチ 2 をお勧めします。

@Autowired Bean がfinalフィールドとして宣言されている場合、答えは変わりますか? 最終的に作成すると、プロキシが要求ごとに新しい Bean を正しくフェッチできなくなるのではないかと心配しています。