का उपयोग कर वसंत में संदर्भ लोड हो रहा है क्या कोई तरीका है कि एक संदर्भ को स्प्रिंग एमवीसी अनुप्रयोग में web.xml का उपयोग करके लोड किया जा सकता है?वेब.xml
वेब.xml
उत्तर
वसंत डॉक्स
वसंत से आसानी से किसी भी जावा आधारित वेब रूपरेखा में एकीकृत किया जा सकता है। तुम सब करने की ज़रूरत है अपने web.xml में ContextLoaderListener घोषित करने और जो संदर्भ फ़ाइलें लोड करने के लिए सेट करने के लिए एक contextConfigLocation उपयोग करने के लिए है।
<context-param>
:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
फिर आप WebApplicationContext उपयोग कर सकते हैं अपने सेम पर एक संभाल पाने के लिए।
WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(servlet.getServletContext());
SomeBean someBean = (SomeBean) ctx.getBean("someBean");
अधिक जानकारी के लिए http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/web/context/support/WebApplicationContextUtils.html देखें
तुम भी अपेक्षाकृत वर्तमान classpath है, जो बेहतर
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
'*' का महत्व क्या है? यह इसके बिना काम नहीं करता है: 'IOException ServletContext संसाधन [/>classpath:/applicationContext.xml] से XML दस्तावेज़ को पार्स करना; नेस्टेड अपवाद java.io.FileNotFoundException: ServletContext संसाधन [/> classpath: /applicationContext.xml] ' – DavidS
नहीं खोल सका, मुझे बस 'क्लासपाथ *' [यहां] (http: // www) के बारे में मेरे प्रश्न का उत्तर देने वाला एक ब्लॉग पोस्ट मिला। gridshore.nl/2008/05/13/spring-application-context-loading-tricks/)। – DavidS
जबकि सर्वलेट खुद को परिभाषित तुम भी संदर्भ लोड कर सकते हैं हो सकता है के लिए संदर्भ स्थान को निर्दिष्ट कर सकते हैं (वेबएपप्लिकेशन कॉन्टेक्स्ट)
<servlet>
<servlet-name>admin</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring/*.xml
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>admin</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
बजाय
(ApplicationContext)
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
या दोनों एक साथ कर सकते हैं। बस WebApplicationContext का उपयोग करने का
दोष यह है कि यह केवल इस विशेष स्प्रिंग प्रवेश बिंदु (DispatcherServlet
) जहां ऊपर उल्लेख किया तरीकों संदर्भ के साथ के रूप में कई प्रवेश बिंदुओं के लिए लोड किया जाएगा के लिए संदर्भ लोड होगा है (उदाहरण के लिए। Webservice Servlet, REST servlet
आदि)
प्रसंग ContextLoaderListener
द्वारा लोड किया गया यह विशेष रूप से DisplacherServlet के लिए लोड किए गए के लिए एक मूल संदर्भ होगा। तो मूल रूप से आप एप्लिकेशन संदर्भ में अपनी सभी व्यावसायिक सेवा, डेटा एक्सेस या रिपोजिटरी बीन्स लोड कर सकते हैं और अपने कंट्रोलर को अलग कर सकते हैं, वेबएप्लिकेशन कॉन्टेक्स्ट पर रिज़ॉल्वर बीन्स देखें।
संदर्भ का उपयोग कैसे करें? और क्या आप कह रहे हैं कि जैसे ही एप्लिकेशन शुरू होता है, संदर्भ वसंत संदर्भ के साथ लोड किया जाएगा? कृपया स्पष्ट करें क्योंकि मैं वसंत के लिए नया हूं। आपके उत्तर के लिए धन्यवाद – tamilnad
अद्यतन उत्तर – ddewaele
देखें वेबएप्लिकेशन कॉन्टेक्स्टयूट्स से संबंधित नवीनतम एपीआई के लिए यहां लिंक है। https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/context/support/WebApplicationContextUtils.html – Ajitesh