2017-06-05 12 views
6

मैंने निम्नलिखित ब्लॉग में 'एप्लिकेशन' दायरा देखा। क्या यह सच है?वसंत में आवेदन स्कोप है?

http://www.concretepage.com/spring/spring-bean-scope-example-using-scope-annotation-and-xml-for-singleton-prototype-request-session-global-session-and-application-scope-with-scoped-proxy

वजह से, मेरी सर्फिंग के अनुसार, मैं वसंत पता चला केवल नीचे 5 स्कोप है। कृपया मुझे सुधारें अगर मैं गलत हूं।

  1. सिंगलटन
  2. प्रोटोटाइप
  3. अनुरोध
  4. सत्र
  5. वैश्विक सत्र
+0

तो क्या आवेदन गुंजाइश और सिंगलटन दायरे के बीच का अंतर हो सकता है? –

उत्तर

9

वहाँ आधिकारिक दस्तावेज़ पर एक वर्ग है जो सेम कार्यक्षेत्रों से संबंधित है अगला:

सिंगलटन (डिफ़ॉल्ट) स्प्रिंग आईओसी कंटेनर प्रति एक ऑब्जेक्ट उदाहरण के लिए एक एकल बीन परिभाषा को स्कॉप्स करता है।

प्रोटोटाइप किसी भी ऑब्जेक्ट उदाहरणों के लिए एक एकल बीन परिभाषा को स्कॉप्स करता है।

अनुरोध एक HTTP अनुरोध के जीवन चक्र को एक एकल बीन परिभाषा को स्कॉप्स करता है; यानी, प्रत्येक HTTP अनुरोध में एक बीन परिभाषा के पीछे बनाए गए बीन का अपना उदाहरण होता है। वेब-जागरूक स्प्रिंग एप्लिकेशन कॉन्टेक्स्ट के संदर्भ में केवल मान्य है।

सत्र एक HTTP सत्र के जीवन चक्र के लिए एक एकल बीन परिभाषा को स्कॉप्स करता है। वेब-जागरूक स्प्रिंग एप्लिकेशन कॉन्टेक्स्ट के संदर्भ में केवल मान्य है।

वैश्विक सत्र वैश्विक HTTP सत्र के जीवन चक्र को एक एकल बीन परिभाषा को स्कॉप्स करता है। पोर्टल संदर्भ में उपयोग किए जाने पर आम तौर पर केवल वैध। वेब-जागरूक स्प्रिंग एप्लिकेशन कॉन्टेक्स्ट के संदर्भ में केवल मान्य है।

आवेदन ServletContext के जीवन चक्र के लिए एक एकल बीन परिभाषा को स्कॉप्स करता है। वेब-जागरूक स्प्रिंग एप्लिकेशन कॉन्टेक्स्ट के संदर्भ में केवल मान्य है।

websocket वेबसाकेट के जीवन चक्र को एक एकल बीन परिभाषा को स्कॉप्स करता है।वेब-जागरूक स्प्रिंग एप्लिकेशन कॉन्टेक्स्ट के संदर्भ में केवल मान्य है।


इसके अलावा

, के रूप में वसंत 3.0 अन्य गुंजाइश धागा गुंजाइश मौजूद है, लेकिन डिफ़ॉल्ट रूप से पंजीकृत नहीं है, इसके अलावा आप भी अपनी खुद की गुंजाइश बना सकते हैं:

स्प्रिंग 3.0, एक सूत्र के रूप में दायरा उपलब्ध है, लेकिन डिफ़ॉल्ट रूप से पंजीकृत नहीं है। अधिक जानकारी के लिए, SimpleThreadScope के लिए दस्तावेज़ देखें। इस या किसी को किसी अन्य कस्टम स्कोप को पंजीकृत करने के निर्देशों के लिए, "कस्टम स्कोप का उपयोग करके" अनुभाग देखें।

वहाँ

एक वर्ग जो अपनी कस्टम दायरे को परिभाषित करने के लिए बताते है:


सम्मान Application scope लिए, वे इसे के रूप में अगले परिभाषित:

वसंत कंटेनर बनाता है संपूर्ण वेब एप्लिकेशन के लिए एक बार ऐपप्रेशंस बीन परिभाषा का उपयोग करके AppPreferences बीन का एक नया उदाहरण। यही है, ऐपप्रिंटेंस बीन ServletContext स्तर पर नियमित रूप से ServletContext विशेषता के रूप में संग्रहीत किया जाता है।

यह भी एक स्प्रिंग सिंगलटन सेम के बीच का अंतर बताते हैं:

यह कुछ हद तक एक स्प्रिंग सिंगलटन सेम के समान है लेकिन दो महत्वपूर्ण मायनों में अलग है: यह ServletContext प्रति एक सिंगलटन है, स्प्रिंग प्रति नहीं 'ApplicationContext' (जिसके लिए वहाँ किसी भी वेब आवेदन में कई हो सकता है), और यह वास्तव में सामने आ रहा है और इसलिए एक ServletContext विशेषता

रूप में दिखाई दे रहा है

तो मामले में आप XML के साथ उपयोग करने के लिए देख रहे हैं:

<bean id="apps" class="com.App" scope="application"/> 

या एनोटेशन:

@ApplicationScope 
@Component 
public class App { 
    // ... 
} 
1

आवेदन एक ServletContext के जीवन चक्र के लिए एक एकल सेम परिभाषा स्कोप। वेब-जागरूक स्प्रिंग एप्लिकेशन कॉन्टेक्स्ट के संदर्भ में केवल मान्य है।

अधिक जानकारी के लिए लिंक का पालन करें:

असल में, वे निर्धारित करें: http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-factory-scopes

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