2012-08-28 14 views
8

सीडीआई के लिए नया होने के नाते, मैं एक विकल्प और क्वालीफायर के बीच व्यावहारिक अंतर जानना चाहता हूं।सीडीआई: @ वैकल्पिक बनाम @ क्वालिफायर

Weld reference में

, यह कहा गया है कि:

4,3। क्वालीफायर एनोटेशन

हम एक से अधिक सेम है कि एक विशेष सेम प्रकार लागू करता है, तो इंजेक्शन बिंदु वास्तव में निर्दिष्ट कर सकते हैं जो सेम इंजेक्शन किया जाना चाहिए एक क्वालीफायर एनोटेशन का उपयोग कर।

लेकिन वैकल्पिक समझा जबकि, यह कहा जाता है:

4,7। विकल्प

विकल्प बीन्स हैं जिनका कार्यान्वयन विशिष्ट क्लाइंट मॉड्यूल या तैनाती परिदृश्य के लिए विशिष्ट है।

यदि मुझे सही समझा गया, तो @Qualifier परिभाषित करता है कि लक्ष्य बीन के कार्यान्वयन इंजेक्शन पॉइंट्स में इंजेक्शन दिए जाते हैं।

दूसरी तरफ @ वैकल्पिक वैकल्पिक पर एक वैकल्पिकता ("@default" मेरा मतलब) बीन इंजेक्शन के बिंदु से इंजेक्शन प्राप्त करने के बारे में क्लाइंट पर निर्भर तैनाती के दौरान एक इच्छा का वर्णन करता है।

यह सही है?

+0

यह सही है। – dcernahoschi

उत्तर

2

हाँ, यह सही है। आप क्वालीफायर को अपने स्रोत कोड में एनोटेशन का उपयोग करके विकास समय पर स्थापित मूल बुनाई के रूप में कल्पना कर सकते हैं।

विकल्प आपको beans.xml फ़ाइल का उपयोग करके निष्पादन समय पर इसे ओवरराइट करने की अनुमति देता है - एक साधारण परिनियोजन आर्टिफैक्ट।

एक विशिष्ट परिदृश्य अलग-अलग वातावरण के लिए विभिन्न beans.xml का उपयोग करना होगा और इस प्रकार उन घटकों के लिए नकली-विकल्प सक्षम करना होगा जिन्हें आप अपने स्थानीय/एकीकरण वातावरण पर निष्पादित नहीं करना चाहते हैं।

संबंधित मुद्दे