दृष्टांत 1
क्लाइंट एप्लिकेशन में (एप्लिकेशन वेब एप्लिकेशन नहीं है, उदाहरण के लिए स्विंग ऐप हो सकता है)
private static ApplicationContext context = new ClassPathXmlApplicationContext("test-client.xml");
context.getBean(name);
Web.xml की कोई आवश्यकता नहीं है । सेम सेवा प्राप्त करने के लिए कंटेनर के रूप में ApplicationContext। वेब सर्वर कंटेनर के लिए कोई ज़रूरत नहीं है। में परीक्षण client.xml कोई दूरस्थ के साथ सरल सेम, दूरस्थ बनाने के साथ सेम हो सकता है।
निष्कर्ष : परिदृश्य 1 में एप्लिकेशन कॉन्टेक्स्ट और DispatcherServlet
संबंधित नहीं हैं।
दृश्य २
एक सर्वर अनुप्रयोग में (सर्वर में तैनात आवेदन जैसे कि Tomcat)। ग्राहक कार्यक्रम (जैसे स्विंग ऐप) से रिमोटिंग के माध्यम से पहुंच सेवा
वेब. xml में श्रोता को परिभाषित करें
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
सर्वर स्टार्टअप पर, ContextLoaderListener
ApplicationContext.xml में परिभाषित बीन्स को त्वरित करता है ।
मान लें कि आपने applicationContext.xml में निम्नलिखित परिभाषित किया है :
<import resource="test1.xml" />
<import resource="test2.xml" />
<import resource="test3.xml" />
<import resource="test4.xml" />
सेम सभी चार विन्यास फाइलों test1.xml , test2.xml , test3.xml , test4.xml से त्वरित किया जाता है ।
निष्कर्ष : परिदृश्य 2 में ApplicationContext औरDispatcherServlet
संबंधित नहीं हैं।
परिदृश्य 3
वसंत MVC के साथ एक वेब अनुप्रयोग में।
में web.xml निर्धारित किए हैं:
<servlet>
<servlet-name>springweb</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springweb</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
जब टॉमकैट शुरू होता है, तो स्प्रिंगवेब-सर्वलेट.एक्सएमएल में परिभाषित बीन्स को त्वरित किया जाता है।
DispatcherServlet
फैली हुई है FrameworkServlet
। में FrameworkServlet
सेम इन्स्टेन्शियशन springweb के लिए जगह लेता है। हमारे मामले में स्प्रिंगवेब फ्रेमवर्क है।
निष्कर्ष : परिदृश्य 3 में एप्लिकेशनकनेक्ट और DispatcherServlet
संबंधित नहीं हैं।
दृश्य 4
वसंत MVC के साथ वेब अनुप्रयोग में। सर्वलेट के लिए springweb-servlet.xml और सर्वर प्रोग्राम के भीतर व्यावसायिक सेवा तक पहुँचने के लिए या किसी अन्य सर्वर प्रोग्राम में DB सेवा तक पहुँचने के लिए आवेदन करें।
में web.xml निम्नलिखित परिभाषित कर रहे हैं:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>springweb</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>springweb</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
सर्वर स्टार्टअप पर, ContextLoaderListener
ApplicationContext.xml में परिभाषित बीन्स को इंस्टेंट करता है ; यह मानते हुए कि आपने यहां घोषणा की है:
<import resource="test1.xml" />
<import resource="test2.xml" />
<import resource="test3.xml" />
<import resource="test4.xml" />
सेम सभी चार test1.xml , test2.xml , test3.xml , test4.xml से सभी तात्कालिक हैं । में परिभाषित सेम इन्स्टेन्शियशन पूरी होने के बाद applicationContext.xml , सेम में परिभाषित springweb-servlet.xml instantiated कर रहे हैं।
तो तात्कालिकता क्रम है: जड़ (अनुप्रयोग संदर्भ), फिर फ्रेमवर्क।
अब यह स्पष्ट होना चाहिए कि वे किस परिदृश्य में महत्वपूर्ण हैं।