Фабрика соединений Spring rabbitmq amqp — как переопределить свойства соединения

#spring-boot #spring-amqp

#spring-boot #spring-amqp

Вопрос:

Я пытаюсь использовать SimpleMessageListenerContainer и фабрику соединений по умолчанию, я не хочу использовать свойства, используя свойства spring по умолчанию spring.rabbitmq.*, я хотел бы установить свойства соединения во время выполнения, когда вводится фабрика соединений. Но мой контейнер пытается подключиться к localhost, любая помощь очень ценится, мой пример кода выглядит следующим образом

 @Bean
public SimpleMessageListenerContainer queueListenerContainer(AbstractConnectionFactory connectionFactory,
        MessageListenerAdapter listenerAdapter) { 
    connectionFactory.setHost(Arrays.toString(rabbitMqConfig.getSubscriberHosts()));
    connectionFactory.setVirtualHost("hydra.services");
    connectionFactory.setPort(rabbitMqConfig.getSubscriberPort());
    connectionFactory.setUsername(rabbitMqConfig.getSubscriberUsername());
    connectionFactory.setPassword(rabbitMqConfig.getSubscriberPassword());
    SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();
    container.setQueueNames(rabbitMqConfig.getSubscriberQueueName());
    container.setConnectionFactory(connectionFactory);

   // container.setQueueNames("SampleQueue"); /*This just for testing.. !*/
    container.setMessageListener(listenerAdapter);
    container.setAcknowledgeMode(AcknowledgeMode.MANUAL);
    container.setDeclarationRetries(5);// This is default to 3, We can twick this and move this to prop
    container.setPrefetchCount(100); //Tell the broker how many messages to send to each consumer in a single request.
    return container;
}
  

Но все же код этого контейнера пытается подключиться к локальному хосту.
Журналы :

[30m2019-03-17 09:35:43,335[0; 39m [34mINFO [0;39m [[34mmain[0;39m] [33morg.springframework.amqp.rabbit.connection.AbstractConnectionFactory[0;39m: Попытка подключиться к: [localhost: 5672] [30m2019-03-17 09:35:45,499[0; 39m [34mINFO [0;39m [[34mmain[0;39m] [33morg.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer[0;39m: Брокер недоступен; не удается принудительно объявить очередь во время запуска [30m2019-03-17 09:35:45,778[0; 39m [34mINFO [0;39m [[34mqueueListenerContainer-1[0;39m] [33morg.springframework.amqp.rabbit.connection.AbstractConnectionFactory[0;39m: Попытка подключиться к: [localhost: 5672] [30m2019-03-17 09:35:48,365[0; 39m [34mINFO [0;39m [[34mmain[0;39m] [33morg.springframework.boot.StartupInfoLogger[0;39m: запустил DfttEppScrubberApplication за 162,706 секунды (JVM работает за 164,364)

Правка 2

Таким образом, я получаю ошибку unknowhost. Изначально я думал, что это проблема с брандмауэром, но я проверил подключение, кажется, все в порядке. Я не уверен, в чем здесь проблема!