कहीं मैंने पढ़ा कि वसंत विन्यास पर सुविधा प्रदान करता है। लेकिन वसंत लोग विन्यास पर इतने बदलाव ला रहे हैं, कि मैं अब xml कॉन्फ़िगरेशन या एनोटेशन का उपयोग करने में वास्तव में भ्रमित हो रहा हूं।
मैं किसी को भी एक निश्चित पद्धति या एक्सएमएल और एनोटेशन का उपयोग करने में अंगूठे के नियम का सुझाव देना चाहूंगा।
एसओ के उदाहरणों से पता चलता है कि मेरे जैसे कई शुरुआती कॉन्फ़िगरेशन पर भ्रमित हो रहे हैं।
-
मैं कार्यक्षमता के पीछे समझ नहीं है
<context:annotation-config>
और<context:component-scan>
।मैंने जो पढ़ा है, वे विभिन्न एनोटेशन (@Required, @Autowired आदि बनाम @Component, @Repository, @Service इत्यादि) को संभालने के लिए प्रतीत होते हैं, लेकिन मैंने जो पढ़ा है, उसी सेम पोस्ट प्रोसेसर क्लासेस को रजिस्टर करने से भी।
मुझे और भी भ्रमित करने के लिए, इस पर एक
annotation-config
विशेषता है<context:component-scan>
... -
मेरे पास अभी भी घटक स्कैन टैग है:
<context:component-scan base-package="com.mycompany.maventestwebapp" />
लेकिन मेरे पास एक और टैग भी है (जैसे दिखने में समान कार्य होता है), यह एक:
<annotation-driven />
इन दो टैग में क्या अंतर है? एक अन्य "अजीब" बात यह है कि पिछला उदाहरण (जो एनोटेशन-संचालित टैग का उपयोग नहीं करता है) एसटीएस द्वारा स्प्रिंग एमवीसी टेम्पलेट प्रोजेक्ट का उपयोग करके बनाई गई परियोजना के समान है, लेकिन अगर मैं इसके कॉन्फ़िगरेशन से एनोटेशन-संचालित टैग को हटा देता हूं प्रोजेक्ट फ़ाइल न चलाएं और मुझे निम्न त्रुटि दें: HTTP स्थिति 404 - ...
स्प्रिंग 3.2 को अब समीपस्थ होने के लिए cglib की आवश्यकता नहीं है, लेकिन निचले संस्करण cglib का उपयोग करते हैं। स्प्रिंग्ससोर्स ब्लॉग का एक उद्धरण
इस तरह के परदे के पीछे उत्पन्न करने के लिए, स्प्रिंग थर्ड पार्टी लाइब्रेरी का उपयोग करता है जिसे कल्लिब कहा जाता है। दुर्भाग्य से, यह परियोजना अब सक्रिय नहीं है। स्प्रिंग 3.2 में, यह बहुत संभावना है कि स्प्रिंग डिफ़ॉल्ट रूप से Javassist का उपयोग कर रहा होगा।
क्या ये सुझाव देने के लिए पर्याप्त हैं कि वसंत विन्यास पर भ्रम है?