2012-05-13 14 views
8

डिफ़ॉल्ट रूप से, वसंत द्वारा निर्मित बीन सिंगलटन है। वे थ्रेड-सुरक्षित हैं क्योंकि वे स्टेटलेस हैं। जब हम वसंत को एक राज्यव्यापी बीन बनाने के लिए चाहते हैं, तो हमें बीन परिभाषा के लिए प्रोटोटाइप स्कोप का उपयोग करने की आवश्यकता है। हमें उनके लिए थ्रेड-सुरक्षित मुद्दों का ख्याल रखना होगा। प्रोटोटाइप बीन द्वारा इंजेक्शन दिए जाने पर सभी स्टेटलेस बीन प्रदूषित हो जाएंगे। तो, मैं सिर्फ छवि नहीं कर सकता जहां हम प्रोटोटाइप स्कोप का उपयोग कर सकते हैं। क्या आप कुछ विशिष्ट परिदृश्य दे सकते हैं जिसे हम स्प्रिंग बीन प्रोटोटाइप का उपयोग करने की आवश्यकता/कर सकते हैं? इसके अलावा हम अन्य सिंगलटन सेम पर राज्य प्रदूषण को कैसे रोक सकते हैं?स्प्रिंग बीन के लिए प्रोटोटाइप प्रोटोटाइप क्या है?

उत्तर

12

प्रोटोटाइप स्कोप का उपयोग करने के कई कारण हैं, उदाहरण के लिए, जब भी आप सिंगलटन का उपयोग करने के बजाय "नया" उपयोग करेंगे। एक प्रति-उपयोगकर्ता बीन, एक प्रति-अनुरोध बीन, अद्वितीय सेम का संग्रह इत्यादि। आखिरकार, किसी भी गैर-तुच्छ अनुप्रयोग में, क्या आप गैर-सिंगलेट्स को सिंगलेट से कहीं ज्यादा नहीं उपयोग करते हैं?

सिंगलटन-दायरे वाले सेम थ्रेड-सुरक्षित नहीं कर रहे हैं बस क्योंकि वे एकमात्र – रहे वे लिखा धागे की सुरक्षा के लिए किया जाना चाहिए। वे जादुई-सुरक्षित जादुई नहीं बनते हैं। एक बीन का दायरा सिर्फ इतना है, इसका दायरा: यह विशेष स्कोप – के लिए बीन उपयुक्त नहीं बनाता है जो डेवलपर पर निर्भर करता है।

+0

मुझे यहां अपने अच्छे दोस्त डेव से असहमत होना है। व्यक्तिगत रूप से, मेरे पास अपने किसी भी उत्पादन अनुप्रयोग में प्रोटोटाइप स्प्रिंग बीन बनाने के 0 अच्छे कारण हैं। मैं खुद से पूछूंगा कि आपको इस वस्तु को बीन के रूप में क्यों चाहिए। यदि यह वास्तव में एक राज्यव्यापी वस्तु है, तो क्या यह एक इकाई बीन है जिसे जेपीए या जेडीबीसी द्वारा बनाया गया है, जैसे कि आप वैसे भी नया फोन नहीं कर रहे हैं? क्या यह एक दृश्य डीटीओ वस्तु की तरह है, फिर बस वहां नया कॉल करें। यहां मार्टन के लिए एक ही बात कहने का एक लिंक है .. http://forum.spring.io/forum/spring-projects/container/81737-when-to-set-scope-as-prototype – user1567291

+0

डाउनवॉट्स पर स्पष्टीकरण, विशेष रूप से जब उत्तर सही, पूर्ण, और स्वीकार किया जाता है, आमतौर पर एक अच्छा विचार है। –

1

मुझे ऑब्जेक्ट बनाने के लिए प्रयुक्त कारखाने वर्गों के विकल्प के रूप में प्रोटोटाइप स्कॉप्ड बीन्स को समझता है। अंतर प्रोटोटाइप बीन्स वसंत के मामले में निर्भरता इंजेक्शन के लिए आपको कुछ कोड बचाएगा और उचित होने पर लेनदेन के लिए स्वचालित रूप से आपकी ऑब्जेक्ट्स को प्रॉक्सी करेगा।

मैं खुद कारखाने के दृष्टिकोण को प्राथमिकता देता हूं। प्रोटोटाइप स्कोप का सामना करने के लिए एक उचित परिदृश्य एक राज्यव्यापी वस्तु थी, जिसे विभिन्न ज्ञात बीन्स द्वारा आवश्यक था और प्रत्येक को अपनी प्रतिलिपि की आवश्यकता होती थी। इस परिदृश्य में एक समर्पित कारखाना वर्ग अनावश्यक होगा क्योंकि मुझे फ्लाई पर ऑब्जेक्ट्स बनाने की आवश्यकता नहीं थी, बल्कि केवल अन्य बीन्स के तत्कालता के दौरान।

संबंधित मुद्दे