2012-11-23 16 views
66

निम्नलिखित निर्भरताओं के बीच क्या अंतर है?मेवेन निर्भरता वसंत-वेब बनाम वसंत-वेबएमवीसी

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId> 
    <version>3.1.2.RELEASE</version> 
</dependency> 

<dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>3.1.2.RELEASE</version> 
</dependency> 

बनाम अगर मैं spring-webmvc अकेले शामिल तो spring-web परोक्ष जोड़ा जाता है।

हमें spring-web अकेले कब उपयोग करना चाहिए?

उत्तर

90

spring-web कुछ आसान सर्वलेट फिल्टर, स्प्रिंग HTTP Invoker, बुनियादी ढांचे को अन्य वेब ढांचे और HTTP प्रौद्योगिकियों के साथ एकीकृत करने के लिए बुनियादी HTTP एकीकरण प्रदान करता है। हेसियन, बर्लप।

spring-webmvc स्प्रिंग एमवीसी का कार्यान्वयन है। spring-webmvcdepends onspring-web पर, इस प्रकार यह spring-web को पारगमन रूप से जोड़ देगा। आपको स्पष्ट रूप से spring-web जोड़ने की आवश्यकता नहीं है।

यदि आप स्प्रिंग एमवीसी का उपयोग नहीं करते हैं तो आपको केवल spring-web पर निर्भर रहना चाहिए, लेकिन स्प्रिंग का समर्थन करने वाली अन्य वेब-संबंधित तकनीकों का लाभ उठाना चाहते हैं।

+3

सहमत, +1। लेकिन दुर्लभ मामला परिदृश्य: 'स्प्रिंग-वेबएमवीसी' इंटर्न समेत 'वसंत-वेब' जोड़ता है, लेकिन कहें कि क्या आपके पास वसंत-वेबएमवीसी संस्करण 4.0.2 है, और आप एक और निर्भरता जोड़ते हैं जो 0.8.8 के 'swagger-springmvc' संस्करण' कहते हैं, तो यह 3.2.x के 'वसंत-वेब 'संस्करण को जोड़ता है। इस मामले में आपको कक्षा को अपवाद नहीं मिल सकते हैं, इसलिए यहां, आपको स्पष्ट रूप से 'वसंत-वेब' और संस्करण 4.0.2 के रूप में जोड़ना होगा। मुझे आज इसका सामना करना पड़ा – spiderman

+2

@ स्पाइडरमैन मैं 'swagger-springmvc' में संक्रमणीय 'वसंत-वेब' निर्भरता को बाहर कर दूंगा – Roger