关于springboot在对rabbitMq队列做监听时,队列初始化的一些方式

springboot rabbitMq队列初始化方法有多种方式这里列出4种

1.使用注解@Bean与类Queue 单一队列初始化 如下

/**

  * 若队列不存在创建队列 第二个参数为是否持久化

  * 

  * @return

  */

 @Bean

 public Queue Queue1() {

  return new Queue(队列名, false);

 }

2.使用 Channel 对象 queueDeclare方法初始化如下

@Resource(name = "rabbitConnectionFactory")

 private ConnectionFactory connectionFactory;



 @PostConstruct

 public void postConstruct() {

  System.out.println("队列初始化"+commonConfig.getFouOrdeNotice());

  Connection connection = connectionFactory.createConnection();

  for (int i = 0; i < 10; i++) {

   Channel channel = connection.createChannel(false);

   try {

    channel.queueDeclare("test213456" + i, false, false, false, null);

   } catch (AmqpException e) {

    e.printStackTrace();

   } catch (IOException e) {

    e.printStackTrace();

   } finally {

    try {

     channel.close();

    } catch (IOException e) {

     e.printStackTrace();

    } catch (TimeoutException e) {

     e.printStackTrace();

    }

   }

  }

  connection.close();

 }

 

3.springboot2.0之后在RabbitListener注解中直接使用 queuesToDeclare 属性初始化 如下

​
//2. 自动创建队列

    @RabbitListener(queuesToDeclare = @Queue(value="队列名",durable=是否持久化))

    public void process2(String message){



    }

​

4.springboot1.5之后在RabbitListener注解中直接使用 bindings 属性初始化与交换机绑定 如下(若绑定队列为默认队列,此方法创建队列可能会出现,没有权限修改默认交换机的异常,但不影响队列的创建与监听

@RabbitListener(bindings =  @QueueBinding(

            value = @Queue(value="队列名",durable="是否持久化"),

            exchange = @Exchange(value = "") //需要绑定的交换机  空字符串与默认交换绑定

    ))

可根据具体情况选择使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值