मैंने अभी तक इसका परीक्षण नहीं किया है, लेकिन मेरा मानना है कि यह काम करेगा।
public void afterBeanDiscovery(@Observes AfterBeanDiscover afterBeanDiscovery, BeanManager beanManager)
{
CustomContext customContext = new CustomContext();
afterBeanDiscovery.addContext(customContext);
beanManager ...
}
अब, चाल है, तो आप उस संदर्भ के लिए एक संदर्भ पकड़ की जरूरत है: प्रत्येक कस्टम गुंजाइश/संदर्भ आप अपने आवेदन में चाहते हैं, तो आप बस एक विस्तार के माध्यम से इस संदर्भ जोड़ने के लिए जब कंटेनर आरंभ नहीं हो जाता जरूरत तो फिर जब आप इसे शुरू करना या रोकना चाहते हैं, तो आप कर सकते हैं। यही कारण है कि हो सकता है कुछ की तरह:
@Inject
protected HttpRequestLifecycle httpRequestLifecycle;
public void doSomething()
{
startContext();
doStuff();
stopContext();
}
public void startContext()
{
httpRequestContextLifecycle.getHttpRequestContext().activate();
}
कि यह करना चाहिए, वहाँ नहीं प्रलेखन का खजाना वहाँ बाहर है, इसलिए मुझे आशा है कि इस मदद करता है।
किसी को भी रुचि रखते हैं, स्रोत यहाँ की जाँच: http://github.com/walterjwhite/server.web.application
वाल्टर
स्रोत
2010-09-26 03:56:58
वास्तव में, यह मुझे वास्तव में पास हो गया। इसे सक्रिय करने के द्वारा संदर्भ शुरू करने के बाद भी, मुझे अभी भी कोई संदर्भ नहीं है ... –
यहां एक और नोट - जब तक आप इसे सिंगलटन नहीं बनाते तब तक आप संदर्भ को इंजेक्ट नहीं कर सकते। यदि यह एप्लिकेशन-स्कोप्ड है, तो आपको कोई गारंटी नहीं है कि आपको संदर्भ में मानचित्र के समान संदर्भ मिलेगा। इसका मतलब है कि, जो संदर्भ आप सक्रिय करते हैं वह एक डमी संदर्भ है, यह कुछ भी नियंत्रित नहीं करता है। मैं जो कर रहा हूं वह मेरे जीवन चक्र प्रबंधन वर्गों में इसका संदर्भ रख रहा था और उसके बाद उस जीवन चक्र को इंजेक्शन दे रहा था और संदर्भ प्राप्त कर रहा था। –
यदि यह @ सिंगलेटन था, तो आप एकाधिक अनुरोधों को कैसे अलग करेंगे? क्या आप संदर्भ श्रोता में कहीं भी संदर्भ बना और सक्रिय नहीं करना चाहिए? –