Имеются следующие два класса конфигурации:
@Configuration
@EnableRabbit
@Import({ LocalRabbitConfigA.class, CloudRabbitConfigA.class })
public class RabbitConfigA {
@Autowired
@Qualifier("rabbitConnectionFactory_A")
private ConnectionFactory rabbitConnectionFactory;
@Bean(name = "admin_A")
AmqpAdmin amqpAdmin() {
return new RabbitAdmin(rabbitConnectionFactory);
}
@Bean(name = "Exchange_A")
DirectExchange receiverExchange() {
return new DirectExchange("Exchange_A", true, false);
}
}
И
@Configuration
@EnableRabbit
@Import({ LocalRabbitConfigB.class, CloudRabbitConfigB.class })
public class RabbitConfigB {
@Autowired
@Qualifier("rabbitConnectionFactory_B")
private ConnectionFactory rabbitConnectionFactory;
@Bean(name = "admin_B")
AmqpAdmin amqpAdmin() {
return new RabbitAdmin(rabbitConnectionFactory);
}
@Bean(name = "Exchange_B")
DirectExchange receiverExchange() {
return new DirectExchange("Exchange_B", true, false);
}
}
Обратите внимание, что классы LocalRabbitConfigA и LocalRabbitConfigB определяют connectionFactory, который подключается к другому VHost.
При запуске приложения (в Tomcat) все биржи создаются в обоих VHosts.
Вопрос в том, как определить, что определенный Exchange / Queue создается определенной ConnectionFactiory?
Так что VHost A содержит только Exchange_A, а VHost B только Exchange_B?