SpringBoot整合ActiveMQ
1.第一步 加入依赖配置,也即Maven坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
2.第二步 由于SpringBoot内置了消息服务,所以可以直接测试了
(1)生产消息
@RestController
public class QueueController {
@Autowired
private JmsMessagingTemplate jmsMessagingTemplate;
@RequestMapping("/quenen")
public void quenen(String text) {
jmsMessagingTemplate.convertAndSend("hgx", text);
}
@RequestMapping("/topic")
public void topic(String text) {
jmsMessagingTemplate.convertAndSend("hgx2", text);
}
}
(2)消费消息
@Component
public class Consumer {
@JmsListener(destination = "hgx")
public void readMessage(String text) {
System.out.println("接收到消息:" + text);
}
@JmsListener(destination = "hgx")
public void readMessage2(String text) {
System.out.println("接收到消息2:" + text);
}
@JmsListener(destination = "hgx2")
public void topic(String text) {
System.out.println("接收到消息2topic:" + text);
}
}
3.SpringBoot整合ActiveMQ默认发送quenen(即点对点形式),如果要发送Topic(发布订阅消息形式),需要配置以下信息
spring.jms.pub-sub-domain=true
4.效果如下
(1)点对点
(2)发布订阅
5.发送Map消息
@RequestMapping("/sendmap")
public void sendMap(){
Map map=new HashMap<>();
map.put("mobile", "13900001111");
map.put("content", "恭喜获得10元代金券");
jmsMessagingTemplate.convertAndSend("itcast_map",map);
}
@JmsListener(destination="itcast_map")
public void readMap(Map map){
System.out.println(map);
}
6.使用外部消息服务
需指定如下配置
spring.activemq.broker-url=tcp://192.168.25.135:61616