के साथ गतिशील कॉन्फ़िगरेशन एक सदस्यता सबस्क्राइब चैनल पर उपभोक्ताओं की एक श्रृंखला में RabbitMQ कनेक्शन चश्मा की सूची से जाने का सही तरीका क्या है?वसंत एकीकरण
है, कहते हैं कि मैं खरगोश config के रूप में निम्नानुसार है:
rabbits:
- hostname: blahblah
vhost: blahlbah
username: blahlbah
password: blahlbalh
exchange: blahblah
- hostname: blahblah1
vhost: blahlbah1
username: blahlbah1
password: blahlbalh1
exchange: blahblah1
...
मैं एक @NestedConfigurationProperty List<RabbitConfiguration>
में इन मार्शल।
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public AmqpTemplate amqpTemplate(RabbitConfiguration rabbitConfiguration) {
...
}
मैं तो अनिवार्य रूप से है कि मैप कर सकते हैं एक IntegrationFlow
लिए:
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public IntegrationFlow integrationFlow(AmqpTemplate amqpTemplate) {
return IntegrationFlows.from(inboundPubSubChannel()).handle(Amqp.outboundAdapter(amqpTemplate)).get();
}
क्या, तथापि, है मैं एक @Bean
विधि है कि मुझे उन List<RabbitConfiguration>
में से एक से एक AmqpTemplate
मिलती है, इसलिए प्रकार लिख सकते हैं List<RabbitConfiguration>
के लिए ऐसा करने का सही तरीका है और परिणामस्वरूप List<IntegrationFlow>
वसंत द्वारा संभाला गया है? निश्चित रूप से यह बस नहीं है:
@Bean
public List<IntegrationFlow> integrationFlows(List<RabbitConfiguration> rabbitConfigurations) {
return rabbitConfigurations.stream()
.map(this::amqpTemplate)
.map(this::integrationFlow)
.collect(toList())
}