SimpleMessageListenerContainer
- 简单消息监听容器,这个类非常强大,我们可以对他进行很多设置,对于消息的配置项,这个类都可以满足;
- 监听队列(多个对列),自动启动,自动声明功能
- 设置事务特性,事务管理器,事务属性。事务容量(并发),是否开启事务,回滚消息等
- 设置消费者的数量,最大最小数量,批量消费等
- 设置消息确认和自动确认模式,是否重回队列,异常捕获handler函数
- 设置消费者标签生成策略,是否独占模式,消费者属性
- 设置具体的监听器,消息转换器等等
注意
SimpleMessageListenerContainer
可以进行动态设置,比如在运行中可以动态修改其消费者数量的大小,接收消息的模式等。很多基于RabbitMQ的制定化后端管理控制台在进行动态设置的时候,也是根据这一特性去实现的。
代码
package com.wyg.rabbitmq.springamqp;
import org.springframework.amqp.core.AcknowledgeMode;
import org.springframework.amqp.core.Message;
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.amqp.rabbit.listener.SimpleMessageListenerContainer;
import org.springframework.amqp.rabbit.listener.api.ChannelAwareMessageListener;
import org.springframework.amqp.support.ConsumerTagStrategy;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.rabbitmq.client.Channel;
/**
* RabbitAdmin
*
* @author wyg0405@gmail.com
* @date 2019-11-25 15:11
* @since JDK1.8