मुझे प्रत्येक अनुरोध के लिए एक अलग एप्लिकेशन ईवेंट श्रोता पंजीकृत करने की आवश्यकता है। जबकि श्रोता के अनुरोध में आने के लिए सभी आवश्यक घटनाओं का इंतजार अवरुद्ध है श्रोता के उद्देश्य, अन्य बाकी अनुरोध से आ रही घटनाओं को पकड़ने के लिए हैअनुरोध-स्कोप्ड ApplicationEventListener ईवेंट प्राप्त करने में विफल रहता है
मैं इस जैसे कोड है:।
@Component
// @Scope(WebApplicationContext.SCOPE_REQUEST)
public static class WhistleEventListener implements ApplicationListener<WhistleEvent> {
volatile Consumer<WhistleEvent> handler;
@Override
public void onApplicationEvent(WhistleEvent we) {
final Consumer<WhistleEvent> h = handler;
if (h != null) h.accept(we);
}
}
@Autowired WhistleEventListener whistleEventListener;
इस कोड को प्राप्त करता है घटनाएं, लेकिन जैसे ही मैं @Scope
एनोटेशन को अनमोल करता हूं, यह ईवेंट प्राप्त करना बंद कर देता है।
अनुरोध-स्कोप्ड एप्लिकेशन इवेंट श्रोताओं समर्थित हैं, क्या वे काम करने के लिए हैं? यदि हां, तो क्या मैं अपना श्रोता काम करने के लिए कुछ कर सकता हूं?
मैं तुम्हें यहाँ क्या रूपरेखा के बारे में का सहारा लिया एक 'ConcurrentHashMap' का उपयोग कर:
है यही कारण है, अन्य गुंजाइश उदाहरणों को घटनाओं प्रेषण करने के लिए, आप की तरह उदाहरण के लिए अपने आप को भेजने, कर दिया था और अतिरिक्त मुद्दे के साथ 'उपभोक्ता' एक लैम्ब्डा है और किसी को इसकी पहचान पर भरोसा नहीं करना चाहिए। इसलिए मुझे मानचित्र के लिए एक अद्वितीय कुंजी उत्पन्न करने की आवश्यकता है। यह बदसूरत है, लेकिन अभी के लिए काम करता है। –