2015-06-25 6 views
5

माता पिता वर्ग इस तरह है:कैसे वसंत टिप्पणी के साथ माता पिता वर्ग संपत्ति सुई

public class BaseDAO{ 
    private DBRoute defaultDB; 

    public DBRoute getDefaultDB() 
    { 
     return this.defaultDB; 
    } 

    public void setDefaultDB(DBRoute defaultDB) 
    { 
     this.defaultDB = defaultDB; 
    } 
} 

मैं नीचे की तरह सेम बनाने:

<bean id="adsConfigDB" class="net.flyingfat.common.dbroute.config.DBRoute"> 
    <constructor-arg value="adsConfig" /> 
</bean> 

<bean id="adsBizDateDB" class="net.flyingfat.common.dbroute.config.DBRoute"> 
    <constructor-arg value="adsBizDate" /> 
</bean> 

मैं उपवर्ग में सुपर क्लास संपत्ति defaultDB इंजेक्षन करना चाहते हैं byName के माध्यम से, टाइप द्वारा टाइप नहीं, जो उप-वर्ग में है डिफ़ॉल्ट डीबीविज्ञापनों का उपयोग कर कॉन्फिगडीबी या adsBizDateD बी। वसंत एनोटेशन के साथ ऐसा करने का कोई तरीका है? मैंने कन्स्ट्रक्टर के साथ ऑटोवायर या रिसोर्स की कोशिश की है जो काम नहीं करता है। वैसे, मुझे पहले से ही पता है कि यह एक्सएमएल का उपयोग करके किया जा सकता है।

उत्तर

1

@Qualifier एनोटेशन - इस एनोटेशन का उपयोग बीन मैपिंग में संघर्ष से बचने के लिए किया जाता है और हमें बीन नाम प्रदान करने की आवश्यकता होती है जिसका उपयोग ऑटोवॉयरिंग के लिए किया जाएगा। इस तरह हम उन मुद्दों से बच सकते हैं जहां एकाधिक बीन्स एक ही प्रकार के लिए परिभाषित किए जाते हैं। यह एनोटेशन आमतौर पर @Autowired एनोटेशन के साथ काम करता है। कई तर्कों के साथ रचनाकारों के लिए, हम विधि में तर्क नामों के साथ इस एनोटेशन का उपयोग कर सकते हैं।

आपका कोड इस तरह होगा ..

@Autowired 
@Qualifier("adsConfig") 
private DBRoute defaultDB; 
+0

मुझे नहीं लगता कि आप सवाल को समझते हैं। मैं इसे सबक्लास में इंजेक्ट करना चाहता हूं, न कि सुपरक्लास में जो संपत्ति को परिभाषित करता है। तथ्य यह है कि मैं superclass संपादित नहीं कर सकता – TonyArcher

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