क्या वसंत से एक रेफ बीन पर एक विधि को कॉल करने के परिणाम को इंजेक्ट करना संभव है?क्या वसंत से एक रेफ बीन पर एक विधि बुलाए जाने के परिणाम को इंजेक्ट करना संभव है?
मैं दो अलग-अलग परियोजनाओं से एक सामान्य वर्ग में कुछ कट/पेस्ट कोड को दोबारा करने की कोशिश कर रहा हूं। परियोजनाओं में से एक में, कोड एक कक्षा में रहता है जिसे मैं "माई क्लाइंट" कहूंगा जिसे वसंत से तत्काल किया जा रहा है। इसे एक और वसंत-तत्काल वर्ग "माईग्रिस्ट्री" के साथ इंजेक्शन दिया जाता है, फिर माई क्लाइंट क्लास उस कक्षा का उपयोग एंडपॉइंट देखने के लिए करती है। मुझे वास्तव में मेरी रिफैक्टर कक्षा में एंडपॉइंट स्ट्रिंग की ज़रूरत है, जिसे एक सेटर के माध्यम से शुरू किया जा सकता है। मैं वास्तव में रिफैक्टर कोड में MyClient से MyRegistry पर निर्भरता नहीं रख सकता।
तो, मेरा सवाल यह है ... क्या कोई तरीका है कि मैं माइक्रेट्रिस्ट्री कक्षा में देखे गए वसंत से एंडपॉइंट स्ट्रिंग इंजेक्ट कर सकता हूं। तो, मैं वर्तमान में है:
<bean id="registryService" class="foo.MyRegistry">
...properties set etc...
</bean>
<bean id="MyClient" class="foo.MyClient">
<property name="registry" ref="registryService"/>
</bean>
लेकिन मैं करना चाहते हैं (और मैं जानता हूँ कि यह है काल्पनिक स्प्रिंग वाक्य रचना)
<bean id="MyClient" class="foo.MyClient">
<property name="endPoint" value="registryService.getEndPoint('bar')"/>
</bean>
जहां MyRegistry एक विधि getEndPoint (Stirng endPointName)
होगाआशा है कि मैं जो हासिल करने की कोशिश कर रहा हूं उसके दृष्टिकोण से समझ में आता है। वसंत में ऐसा कुछ संभव है तो कृपया मुझे बताएं!
बहुत अच्छा - और थोड़ा विचलित। हम यहां वसंत 2.5.6 का उपयोग कर रहे हैं इसलिए मैं इस तकनीक का उपयोग करने की कोशिश करूंगा। मैं देखता हूं कि अब आप क्या कर रहे हैं ... आप रजिस्ट्री सेवा पर फैक्ट्री विधि के रूप में getEndPoint() विधि का इलाज करते हैं - "फैक्ट्री-निर्मित" श्रेणी एंडपॉइंट का प्रतिनिधित्व करने वाली एक साधारण स्ट्रिंग है। बहुत ही शांत! मेरी आशा है कि इससे काम हो जाए! –
"ईर्ष्या" वास्तव में, आपको कितना हिम्मत है :) यह बिल्कुल ठीक है कि कैसे 'फैक्ट्री-बीन' और 'फैक्ट्री-विधि' का उपयोग किया जाना चाहिए, मैं आपको जानूंगा :) – skaffman