接着去测试类RabbitmqApplicationTests中加上fanout的发送测试,然后注释掉direct的单元测试,以便一会造成干扰
@SpringBootTest class RabbitmqApplicationTests { @Autowired private DirectRabbitSender directRabbitSender; @Autowired private FanoutRabbitSender fanoutRabbitSender; @Test void contextLoads() { } // @Test // public void directSendTest(){ // directRabbitSender.send("direct-sender"); // directRabbitSender.send("direct-sender_test"); // } @Test public void fanoutSendTest(){ fanoutRabbitSender.send("fanout-sender_1"); fanoutRabbitSender.send("fanout-sender_2"); } }代码都完成了,现在我们启动测试类,看看控制台是否正常收到了消息
看图看图,fanout模式下也完全认证成功!!!那我们可以宣布,文章开头的猜想完全可以实现。
总结服务端只声明exchange,客户端来创建queue和绑定exchange的方式完全可行。并且在Direct和Fanout模式下都可行。
那我们可以推测在Header模式的交换器和Topic模式的交换器下应该也大差不差。具体各位可自行验证,基本流程和上面direct和fanout的流程差不多。