@RabbitListener (queues = "MyQueue") не работает в проекте Spring? - PullRequest
2 голосов
/ 27 мая 2020

Я пытаюсь реализовать rabbitmq в своем приложении Spring , а не в Spring boot. Итак, я добавил эту конфигурацию


import org.springframework.amqp.core.AmqpAdmin;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class RabbitConfiguration {

    @Bean
    public ConnectionFactory connectionFactory() {
        CachingConnectionFactory connectionFactory =
                new CachingConnectionFactory("localhost");
        return connectionFactory;
    }

    @Bean
    public AmqpAdmin amqpAdmin() {
        return new RabbitAdmin(connectionFactory());
    }

    @Bean
    public RabbitTemplate rabbitTemplate() {
        return new RabbitTemplate(connectionFactory());
    }

    @Bean
    public Queue myQueue() {
        return new Queue("MyQueue");
    }


}

Затем из моего класса обслуживания я использовал: -

public void sendViaTemplate(String msg){
        ApplicationContext context =
                new AnnotationConfigApplicationContext(RabbitConfiguration.class);


        RabbitTemplate template = context.getBean(RabbitTemplate.class);

        template.convertAndSend(QUEUE_NAME,"Hello from template "+msg);
    }

    @RabbitListener(queues = "MyQueue")
    public void ListenToMyQueue( String in){
        System.out.println("New Msg arrived"+in);
    }

convertAndSend работает, как ожидалось, но когда сообщение помещается в очередь, ListenToMyQueue должен запускаться автоматически при добавлении нового элемента в очередь, верно? Почему это не работает?

1 Ответ

1 голос
/ 27 мая 2020

Для справки в будущем, после многих дней попыток, наконец, эта конфигурация слушателя работает должным образом. введите здесь описание ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...