1. RabbitAdmin
- autoStartup必须要设置为true,否则Spring容器不会加载RabbitAdmin类;
- RabbitAdmin底层实现就是从Spring容器中获取Exchange、Binding、RoutingKey以及Queue的@Bean声明;
- 使用RabbitTemplate的execute方法执行对应的声明、修改、删除等RabbitMQ的基础功能操作。例如:添加一个交换机、删除一个绑定、清空一个队列的消息等等。
2. Spring AMQP
使用@Bean的方式声明交换机、队列及绑定关系
3. RabbitTemplate
4. SimpleMessageListenerContainer
- 简单消息监听容器。这个类非常强大,可以对他进行很多设置,对于消费者的配置项,这个类都可以满足;
- 监听队列(多个队列)、自动启动、自动声明功能;
- 设置事务特性,事务管理器,事务属性,事务容量,是否开启事务,回滚消息;
- 设置消费者数量,最小最大数量,批量消费;
- 设置消息确认和自动确认模式、是否重回队列、异常捕获handler函数;
- 设置消费者标签生成策略,是否独占模式,消费者属性等;
- 设置具体的监听器、消息转换器等;
注意:SimpleMessageListenerContainer可以进行动态设置,也就是说在运行中的应用可以动态的修改其消费者数量的大小,接收消息的模式等
5. MessageListenerAdapter
- 即消息监听适配器
6. MessageConverter
- 我们在进行发送消息时,正常情况下消息体为二进制的数据方式进行传输,如果希望内部帮我们进行转换,或者指定自定义的转换器,就需要用到MessageConverter;
- 自定义常用转换器:MessageConverter,一般来讲都需要实现这个接口;
- 重写下面两个方法:
(1). toMessage: java对象转换为Message
(2). fromMessage: Message对象转换为java对象 - 类型:
(1). Json转换器: Jackson2JsonMessageConverter—>可以进行java对象的转换功能;
(2). DefaultJackson2JavaTypeMapper映射器: 可以进行java对象的映射关系;
(3). 自定义二进制转换器: 比如图片类型、PDF、PPT、流媒体