SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。
SpringAmqp的官方地址:https://spring.io/projects/spring-amqp

自动声明队列、交换机及其绑定关系
基于注解的监听器模式,异步接收消息
封装了RabbitTemplate工具,用于发送消息
org.springframework.boot spring-boot-starter-amqp
spring:rabbitmq:host: 192.168.119.129 # rabbitMQ的ip地址port: 5672 # 端口username: buliangshuaipassword: 123456virtual-host: /
在消息发送类服务中编写测试类SpringAmqpTest,并利用RabbitTemplate实现消息发送:
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringAmqpTest {@Autowiredprivate RabbitTemplate rabbitTemplate;@Testpublic void testSendMessage2SimpleQueue() {//队列名称String queueName = "simple.queue";//消息String message = "hello, spring amqp!";//发送消息rabbitTemplate.convertAndSend(queueName, message);}
}
在消息消费服务中新建一个类SpringRabbitListener,代码如下:
@Component
public class SpringRabbitListener {@RabbitListener(queues = "simple.queue")public void listenSimpleQueue(String msg) {System.out.println("消费者接收到simple.queue的消息:【" + msg + "】");}
}
我们希望消息体的体积更小、可读性更高,因此可以使用JSON方式来做序列化和反序列化。
在消息发送者和消息消费者两个服务中都引入依赖:
com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.9.10
配置消息转换器。在启动类中添加一个Bean即可:
@Bean
public MessageConverter jsonMessageConverter(){return new Jackson2JsonMessageConverter();
}