RabbitAdmin类可以很好的操作rabbitMQ,在Spring中直接进行注入即可。
编程时注意,autoStartup必须设置为true,否则Spring容器不会加载RabbitAdmin类。
RabbitAdmin类底层实现就是从Spring容器中获取exchange、Bingding、routingkey以及queue的@bean声明,然后使用rabbitTemplate的execute方法进行执行对应的声明、修改、删除等一系列rabbitMQ基础功能操作。例如添加交换机、删除一个绑定、清空一个队列里的消息等等
代码示例:
代码地址: https://github.com/hmilyos/rabbitmq-spring-demo
RabbitAdmin类的使用如下图,注意类上还有一些Spring的基本配置注解。

SpringAMQP的声明式
回顾一下消费者配置
1. 设置交换机类型
2. 将队列绑定到交换机
FanoutExchange: 将消息分发到所有的绑定队列,无routingkey的概念
HeadersExchange :通过添加属性key-value匹配
DirectExchange:按照routingkey分发到指定队列
TopicExchange:多关键字匹配
SpringAMQP声明即在rabbit基础API里面声明一个exchange、Bingding、queue。使用SpringAMQP去声明,就需要使用@bean的声明方式。
具体的代码实现如下图所示


然后然后在单元测试里面写个方法测试一下,具体如下

运行单元测试,然后上管控太验证刚才声明的exchange、Bingding、queue是否都成功



还可以改进一下代码,直接在单元测试里面用如下方式进行声明和绑定

再启动一下单元测试,上管控台验证这些是否都成功了。

自此,RabbitAdmin以及声明式配置的简单使用demo演示完毕
网友评论