मुझे आश्चर्य है कि सीडीआई (@ApplicationScoped
, @SessionScoped
और @RequestScoped
) में विभिन्न बीन स्कॉप्स को कैसे लागू किया जाता है। मैं जीवन चक्र को समझता हूं, लेकिन जहां कंटेनर में इन संग्रहित होते हैं? मैं जेएसएफ बीन्स पर इन एनोटेशन का उपयोग कर रहा हूं।सर्वर पर विभिन्न बीन स्कॉप्स कैसे काम करते हैं?
सर्वर पर इन बीन्स कैसे संग्रहीत किए जाते हैं और सर्वर यह जानने में सक्षम है कि कौन से सेम कौन से हैं।
उदाहरण के लिए एक बीन है जिसमें @SessionScoped
HTTPSession
दृश्यों के पीछे ऑब्जेक्ट में संग्रहीत है? @ApplicationScoped
के साथ बीन्स ServletContext
में मानचित्र आवृत्ति चर में संग्रहीत हैं? यदि हां, तो थ्रेड सुरक्षा के बारे में क्या। मुझे लगता है कि मैंने इसे गलत समझा है लेकिन यह बहुत अच्छा होगा अगर कोई मुझे सिखा सकता है कि क्या होता है, जहां वे संग्रहीत होते हैं (अलग-अलग क्षेत्रों), सर्वर यह जानने में सक्षम है कि कौन से सेम कौन से हैं ... जैसे कोई अन्य आईडी हैं (न केवल सत्र आईडी)?
मैं जावा ईई 6 सभी संदर्भ कार्यान्वयन का उपयोग कर बीटीडब्ल्यू हूं।
ठीक है, तो इसके मुकाबले इसके लिए कोई और "होकस पॉकस" नहीं है :) लेकिन, मैं समझता हूं कि '@ एप्लिकेशनस्कोप्ड' एकेए सर्वलेट कॉन्टेक्स्ट थ्रेडसेफ नहीं है क्योंकि कई क्लाइंट एक ही समय में इसे बदलने की कोशिश कर सकते हैं ... लेकिन 'सत्र सत्र 'धागा सुरक्षित क्यों नहीं है? क्या यह सिर्फ एक ग्राहक नहीं है जिसकी एक ही बीन तक पहुंच है? – LuckyLuke
'सत्र स्कोप्ड' के लिए वस्तुतः कोई सीमा नहीं है कि कितने अनुरोध एक साथ पहुंच सकते हैं। बेशक, वे आम तौर पर सभी एक ही ग्राहक से उत्पन्न होते हैं। एक ही विंडो से आने वाली कई खिड़कियां, एकाधिक टैब या एकाधिक AJAX अनुरोधों को सोचें। –
ठीक है, तो आपने उल्लेख किया है कि यदि एक बीन स्वाभाविक रूप से थ्रेड-सुरक्षित है जैसे कि ईजेबी (कम से कम कुछ प्रकार) ... तो आप का मतलब है कि इसे जेएसएफ में इस्तेमाल किए गए बीन की संपत्ति के रूप में रखा जाता है? – LuckyLuke