को देखते हुए मैं एक वसंत सेम इस सेमकैसे नाम से वसंत सेवा सेम अधिलेखित करने के लिए, एनोटेशन का उपयोग केवल
public class Consumer {
@Autowired
@Qualifier("myService")
private MyService service;
...
}
अब मैं अपने परियोजना चाहते का उपयोग कर
@Service("myService")
public class DefaultService extends MyService {
}
और एक वर्ग के रूप में विन्यस्त है, कि Consumer
MyService
इंजेक्शन होने के बाद एक और कार्यान्वयन के लिए पिछले कक्षाएं शामिल हैं। इसलिए मैं सेम myService
@Service("myService")
public class SpecializedService implements MyService {
}
Consumer
में जिसके परिणामस्वरूप अब SpecializedService
बजाय DefaultService
का एक उदाहरण ले जाने के ऊपर लिख करना चाहते हैं। परिभाषा के अनुसार मेरे पास वसंत कंटेनर में एक ही नाम के साथ दो सेम नहीं हो सकते हैं। मैं वसंत कैसे कह सकता हूं कि नई सेवा की परिभाषा पुराने व्यक्ति को ओवरराइट कर देगी? मैं Consumer
कक्षा को संशोधित नहीं करना चाहता हूं।
धन्यवाद, विली। हमने आपके समाधान के साथ समाप्त किया क्योंकि हमने एक सेवा में प्रत्येक सेवा की सूची रखने के लिए रखरखाव के कारणों (हम सैकड़ों सेवाओं के बारे में बात कर रहे हैं) के लिए भी निर्णय लिया है - अर्थात् वसंत बीन कॉन्फ़िगरेशन। केवल आईडी और वर्गनाम को परिभाषित करना बहुत दर्दनाक नहीं है क्योंकि एनोटेशन का उपयोग केवल अधिक आकर्षक है। –