2011-11-23 10 views
6

मेरे पास एक प्रोजेक्ट है जिसमें ... है ... 200-300 दास/सेवाएं/नियंत्रक और में सबकुछ निर्दिष्ट करने के बजाय मैं सब कुछ एक साथ तार करने के लिए @Autowired का उपयोग करता हूं।क्या वसंत का @Autowired एक बड़ा प्रदर्शन मुद्दा है?

मेरा सवाल यह है कि मेरे स्टार्टअप समय पर इसका प्रदर्शन प्रभाव कितना है? के माध्यम से सभी @Autowired एनोटेशन को हटाने के लिए यह वास्तव में लायक होगा और वास्तव में इस एप्लिकेशन को मैन्युअल रूप से तारित करें?

एक वास्तुकला के दृष्टिकोण से, मुझे @Autowired पसंद है। मैं xml फ़ाइल का उपयोग करके जटिलता की एक और परत जोड़ना नहीं चाहता - इसमें कोई मूल्य नहीं है जहां तक ​​मेरा संबंध है। लेकिन अगर इस तरह की चीज मेरे कंटेनर के लोड समय में 10 सेकंड जोड़ रही है, तो मैं इसे देख सकता हूं। यदि लागत 100 मिलीसेकंड है, तो मैं इसे छोड़ दूंगा।

धन्यवाद

उत्तर

5

व्यावहारिक रूप से वही। घटक स्कैनिंग थोड़ा अधिक महंगा है (जब आप @Service, @Component के लिए स्कैन करते हैं), लेकिन जैसा कि आपने कहा था, यह स्टार्टअप-टाइम है - यह केवल एक बार होता है। और एक मध्यम मशीन पर यह एनोटेशन के साथ भी जल्दी से शुरू होता है।

आम तौर पर, मैं दृष्टिकोण को त्याग नहीं दूंगा क्योंकि यह स्टार्टअप समय का थोड़ा सा जोड़ता है। और मैं आपको विश्वास दिलाता सकते हैं (आपकी सही से बड़ी परियोजना पर काम कर) महत्वपूर्ण कुछ भी नहीं

+0

धन्यवाद। तो मुझे अन्य स्थानों में स्टार्टअप समय को कम करने के लिए एक रास्ता खोजना होगा। मैं सर्वर को बहुत से शुरू/बंद करता हूं क्योंकि मैं नियंत्रक क्रियाओं को बदलता हूं और AJAX का परीक्षण करता हूं। मैं बस स्टार्टअप समय को कम करने के तरीकों की खोज करना चाहता हूं। मुझे उत्पादन के लिए एहसास है, यह एक गैर-मुद्दा है, लेकिन विकास के लिए, यह स्टार्टअप समय वास्तव में वास्तव में गंभीर है। – egervari

+0

आपको अक्सर पुन: नियोजन नहीं करना चाहिए। यह http://techblog.bozho.net/?p=714 – Bozho

+0

देखें, मुझे नहीं लगता कि वास्तव में मदद की जा सकती है। मैं अभी भी बहुत से आवेदन परीक्षण चलाता हूं, और मैं कुछ हद तक एनोटेशन बदलता हूं कि हॉटस्पेप एक विकल्प नहीं है। – egervari

4

@Masterhard द्वारा एक दिलचस्प टिप्पणी Spring @Autowired usage में नहीं है है:

हम @Autowire से वापस एक्सएमएल विन्यास का उपयोग करने जा रहे हैं हमारी बड़ी परियोजना में। समस्या बहुत कम बूटस्ट्रैप प्रदर्शन है। ऑटोवॉयरिंग स्कैनर ऑटो क्लासिंग सर्च क्लासपाथ से सभी वर्गों को लोड करता है, इसलिए, वसंत प्रारंभिकरण के दौरान बहुत से वर्ग उत्सुकता से लोड होते हैं।

यह भी देखें उदा। SPR-6870

हालांकि! एनोटेशन का उपयोग करके स्वत: काम करना इतना सुविधाजनक है कि मैं एक्सएमएल पर वापस स्विच करने से पहले दो बार सोचूंगा। जब तक स्टार्टअप समय वास्तव में आपके प्रोजेक्ट में कोई समस्या नहीं है और आप साबित कर सकते हैं कि यह क्लासस्पैट स्कैनिंग है जो इसका कारण बनता है, एनोटेशन के साथ रहें। यह भी याद रखें कि जावा ईई भी एनोटेशन की ओर बढ़ता है।

पीएस .: एक्सएमएल की हजारों लाइनों को पार्स करने से कुछ ओवरहेड भी सामने आते हैं।

+4

ध्यान दें कि एनोटेशन और घटक-स्कैनिंग के साथ ऑटोवॉयरिंग के बीच एक अंतर है। आप घटक स्कैनिंग बंद कर सकते हैं और अभी भी @Autowired है। – Bozho