前言
前面我们学习 RabbitMQ 的时候,都是在编译的时候就确定了Exchange、Queue,也就是说我们需要在程序启动之前就创建好需要的Exchange和Queue,但是实际使用的时候,我们往往不能够实现知道所有的Exchange和Queue,而是在运行时才能够确定这些信息,那么在 Spring 中如何动态的管理这些呢?
动态创建和管理Exchange、Queue
在 Spring 中动态的创建和管理Exchange、Queue主要依赖于 RabbitAdmin
类,这个 RabbitAdmin
Spring 已经帮我们管理了,只要我们导入了 RabbitMQ 的依赖就可以使用 @Autowired
或者 @Resource
将 RabbitAdmin 依赖注入就可以了:
@Autowired
private RabbitAdmin rabbitAdmin;
注入 RabbitAdmin 之后,我们就来看看如何创建 Exchange,跟之前学习的差不多,这里的创建 Exchange 也叫做声明交换机,也就是 delareExchange()
方法:
方法需要的参数类型是 Exchange 类型,也就是前面我们学习的 fanout、direct、topic 三种类型:
所以在声明交换机之前,需要先创建出一个对应类型的交换机:
public void createExchange(String name