मैं घटक स्कैनिंग और स्प्रिंग संस्करण 3.0.5.RELEASE में एक ही सेवा वर्ग के लिए एक्सएमएल विन्यास में एक अतिरिक्त सेम परिभाषा के उपयोग से संबंधित प्रश्न है।एक ही कक्षा के लिए घटक स्कैनिंग और एक्सएमएल बीन परिभाषा मिश्रण करते समय वसंत व्यवहार?
मैं एक वर्ग "MyService"
@Service("myService")
साथ एनोटेट बनाया है और वहाँ है कि इस तरह दिखता है एक ही कक्षा के लिए एक सेम परिभाषा है:
<bean id="myService" class="....MyService" />
मैं एक
System.out.println("MyService has been instantiated");
डाल
संदेश MyService वर्ग के निर्माता में संदेश। यह संदेश कंसोल पर केवल एक बार पर प्रदर्शित होगा, जब मेरा एप्लिकेशन शुरू होता है। वसंत का पता लगाने के लिए पर्याप्त स्मार्ट लगता है, कि आईडी "myService" आईडी के साथ उस वर्ग का केवल एक उदाहरण हो सकता है।
लेकिन फिर भी जब मैं
@Service("myService2")
में टिप्पणी बदलें और "MyService" करने के लिए एक्सएमएल सेम परिभाषा आईडी छोड़ देते हैं, वर्ग केवल एक बार instantiated कर दिया जाएगा।
मेरे दो प्रश्न हैं:
कि हालांकि व्यवहार है कि मैं वर्तमान में चाहते है, यह एक वर्ग के लिए एक्सएमएल सेम परिभाषा और घटक स्कैनिंग अप मिश्रण करने संभव है, इसके साथ दो बार instantiated है करने के लिए विभिन्न बीन आईडी?
किसी को भी पता है, क्या तंत्र वसंत में "पर्दे के पीछे" क्या है? वसंत कैसे तय करता है कि केवल एक बार कक्षा को तुरंत चालू करने के लिए कब? (शायद इसे एक ही कक्षा के लिए घटक स्कैनिंग और एक्सएमएल बीन परिभाषा को मिश्रण करने की अनुमति नहीं है?)
आपकी मदद के लिए बहुत बहुत धन्यवाद!