वेब अनुप्रयोग संदर्भ विस्तारित अनुप्रयोग संदर्भ जो मानक javax.servlet.ServletContext के साथ काम करने के लिए डिज़ाइन किया गया है, इसलिए यह कंटेनर के साथ संवाद करने में सक्षम है।
public interface WebApplicationContext extends ApplicationContext {
ServletContext getServletContext();
}
यदि वे ServletContextAware इंटरफ़ेस को लागू करते हैं तो बीन्स, WebApplicationContext में त्वरित रूप से ServletContext का उपयोग करने में सक्षम होंगे।
package org.springframework.web.context;
public interface ServletContextAware extends Aware {
void setServletContext(ServletContext servletContext);
}
ServletContext उदाहरण के साथ करने के लिए कई चीजें संभव हैं, उदाहरण के लिए getResourceAsStream () विधि को कॉल करके WEB-INF संसाधनों (xml configs और आदि) तक पहुंचना। आमतौर पर सर्वलेट में web.xml में परिभाषित सभी एप्लिकेशन संदर्भ वेब अनुप्रयोग संदर्भ होते हैं, यह रूट वेबएप संदर्भ और सर्वलेट के ऐप संदर्भ दोनों पर जाता है।
इसके अलावा, वेब एप्लिकेशन संदर्भ क्षमताओं के आधार पर आपके एप्लिकेशन को परीक्षण करने के लिए थोड़ा कठिन हो सकता है, और आपको परीक्षण के लिए MockServletContext वर्ग का उपयोग करने की आवश्यकता हो सकती है ।
सर्वलेट और रूट संदर्भ के बीच अंतर
स्प्रिंग आपको मल्टीलेवल एप्लिकेशन संदर्भ पदानुक्रम बनाने की अनुमति देता है, इसलिए आवश्यक बीन को मूल संदर्भ से लिया जाएगा यदि यह वर्तमान एप्लिकेशन संदर्भ में मौजूद नहीं है। डिफ़ॉल्ट रूप में वेब ऐप्स में दो पदानुक्रम स्तर, रूट और सर्वलेट संदर्भ हैं :।
यह आपको संपूर्ण अनुप्रयोग के लिए एकल के रूप में कुछ सेवाएं चलाने की अनुमति देता है (स्प्रिंग सिक्योरिटी बीन्स और बेसिक डेटाबेस एक्सेस सर्विसेज आमतौर पर यहां रहती हैं) और दूसरा सेम के बीच नाम की गड़बड़ी से बचने के लिए संबंधित सर्वलेट्स में अलग सेवाओं के रूप में। उदाहरण के लिए एक सर्वलेट संदर्भ वेब पेजों की सेवा करेगा और दूसरा एक स्टेटलेस वेब सेवा को लागू करेगा।
जब आप स्प्रिंग सर्वलेट क्लासेस का उपयोग करते हैं, तो यह दो स्तर की जुदाई बॉक्स से बाहर निकलती है: रूट एप्लीकेशन संदर्भ को कॉन्फ़िगर करने के लिए आपको अपने web.xml में संदर्भ-परम टैग का उपयोग करना चाहिए
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/root-context.xml
/WEB-INF/applicationContext-security.xml
</param-value>
</context-param>
(रूट एप्लिकेशन संदर्भ ContextLoaderListener द्वारा बनाया गया है जो web.xml में घोषित किया गया है
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
) और सर्वलेट एप्लिकेशन संदर्भों के लिए सर्वलेट टैग
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>app-servlet.xml</param-value>
</init-param>
</servlet>
कृपया ध्यान दें कि यदि init-param को छोड़ दिया जाएगा, तो वसंत इस उदाहरण में myservlet-servlet.xml का उपयोग करेगा।
इसे भी देखें: स्प्रिंग फ्रेमवर्क में ApplicationContext.xml और Spring-servlet.xml के बीच अंतर
web.xml
फ़ाइल की सामग्री के बारे में पूछता है ; यह सवाल कुछ स्प्रिंग क्लासेस के बारे में पूछ रहा है।