मान लीजिए आप एक इंटरफेसस्प्रिंग Autowire एनोटेशन
public interface A {
public void doSomething();
}
और दो कार्यान्वयन कक्षाएं
@Component(value="aImpl1")
public class AImpl1 implements A {
}
@Component(value="aImpl2")
public class AImpl2 implements A{
}
और अंत में एक वर्ग है कि एक 'ए' कार्यान्वयन का उपयोग करेगा:
@Component
public class MyClass {
@Autowire
A a;
}
अब अगर मैं इंजेक्ट करना चाहता हूं AIMpl1 मैं @Qualifier ("aImpl1") जबकि मैं @Qualifier जोड़ने अगर मैं AImpl2 इंजेक्षन करना चाहते हैं ("aImpl2") जोड़
सवाल यह है: यह संभव वसंत किसी भी तरह का निर्देश देने की है इस मामले में "ए" के सभी कार्यान्वयन को देखने के लिए AImpl1 और AImpl2 और सबसे उपयुक्त कार्यान्वयन का चयन करने के लिए कुछ एप्लिकेशन विशिष्ट सम्मेलनों का उपयोग करें? उदाहरण के लिए इस मामले में मेरा सम्मेलन सबसे बड़ा प्रत्यय (यानी एआईएमपीएल 2) के साथ कार्यान्वयन का उपयोग कर सकता है?
संपादित करें: क्लास MyClass को कार्यान्वयन लुकअप तर्क के बारे में बिल्कुल पता नहीं होना चाहिए, इसे केवल एआईएमपी 2 के ऑब्जेक्ट के साथ अपनी संपत्ति "ए" सेट मिलनी चाहिए।
कहाँ देखने तर्क रखने के लिए करना चाहते हैं? यदि एक्सएमएल संदर्भ कॉन्फ़िगरेशन फ़ाइल में, एक विकल्प उपनाम हैं? कस्टम क्वालीफायर के बारे में क्या? –
आपको क्या लगता है कि उत्तर अद्यतित नहीं है? क्या हाल के वसंत संस्करण में समस्याएं हैं? या यह विशिष्ट अनुप्रयोग संदर्भ वर्ग के साथ काम नहीं करता है? –
@AdrianBer तर्क स्प्रिंग के लिए कुछ प्रकार की कॉन्फ़िगरेशन होना चाहिए और सभी लुकअप पर लागू होना चाहिए। गर्गक ने मुझे जो जवाब दिया था उसका उत्तर दिया। –