जोड़ें, मैं वर्तमान में खरगोश-एएमपीपी कार्यान्वयन प्रोजेक्ट पर काम कर रहा हूं और मेरी सभी कतारों, बाइंडिंग और एक्सचेंजों को प्रोग्रामेटिक रूप से सेटअप करने के लिए वसंत-खरगोश का उपयोग कर रहा हूं। (वसंत-खरगोश-1.3.4 और वसंत-ढांचे के संस्करण 3.2.0)गतिशील रूप से नई कतार, बाइंडिंग और एक्सचेंजों को बीन्स
एक जैवकॉन्फ़िगरेशन कक्षा या एक्सएमएल-आधारित कॉन्फ़िगरेशन में घोषणा मेरी राय में काफी स्थिर है। मैं कैसे एक अधिक गतिशील मान सेट करने जानते एक कतार, विनिमय या इस तरह बंधन के लिए (पूर्व एक नाम है।):
@Configuration
public class serverConfiguration {
private String queueName;
...
@Bean
public Queue buildQueue() {
Queue queue = new Queue(this.queueName, false, false, true, getQueueArguments());
buildRabbitAdmin().declareQueue(queue);
return queue;
}
...
}
लेकिन अगर यह संभव हो गया था कतार का एक अपरिभाषित राशि उदाहरणों बनाने के लिए मैं सोच रहा था और उन्हें अपने सभी उदाहरणों को पंजीकृत करने वाले कारखाने की तरह सेम के रूप में पंजीकृत करें।
मैं वसंत @Bean एनोटेशन और अपनी सीमाओं के साथ वास्तव में परिचित नहीं हूँ, लेकिन मैं
@Configuration
public class serverConfiguration {
private String queueName;
...
@Bean
@Scope("prototype")
public Queue buildQueue() {
Queue queue = new Queue(this.queueName, false, false, true, getQueueArguments());
buildRabbitAdmin().declareQueue(queue);
return queue;
}
...
}
की कोशिश की और अगर कतार के कई सेम उदाहरणों पंजीकृत हैं मैं फोन को देखने के लिए:
Map<String, Queue> queueBeans = ((ListableBeanFactory) applicationContext).getBeansOfType(Queue.class);
लेकिन यह केवल 1 मानचित्रण वापस आ जाएगी:
name of the method := the last created instance.
यह Dynamica करना संभव है स्प्रिंगएप्लिकेशन कॉन्टेक्स्ट में रनटाइम के दौरान लिली जोड़ें बीन्स?
यह एक जेएमएक्स कार्य की तरह लगता है। – chrylis