Spring Boot 2.X - Spring Boot整合JMS之ActiveMQ
Spring Boot 2
整合ActiveMQ案例。文中Spring Boot
版本爲2.1.4.RELEASE
。
1.創建項目並引入相關依賴
利用Spring Initializr快速創建一個Spring Boot項目,主要依賴如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2.編寫配置
這裏需要先安裝了ActiveMQ,安裝方式請參閱 Linux安裝ActiveMQ,並在Queues中添加一條Queue,名稱爲queue.test
spring:
activemq:
broker-url: tcp://192.168.0.2:61616 # activemq消息組件的連接主機
user: admin
password: admin # 賬號密碼默認爲admin
3.開啓JMS功能
在主啓動類XxxApplication
上添加@EnableJms
註解啓動JMS功能
@SpringBootApplication
@EnableJms
public class SpringBootActivemqApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootActivemqApplication.class, args);
}
}
4.消息監聽
新建一個消費者監聽器,用於監聽MQ消費。用@JmsListener
註解標註,主要要加入Spring
容器中
@Component
public class ConsumerListener {
@JmsListener(destination = "queue.test")
public void receive(String message) {
System.err.println("消費者接收到消息:" + message);
}
}
5.發送消息接口
編寫一個Controller,用於發送MQ測試
@RestController
public class MsgController {
private final JmsTemplate jmsTemplate;
public MsgController(JmsTemplate jmsTemplate) {
this.jmsTemplate = jmsTemplate;
}
@GetMapping("/send")
public String sendMsg(String msg){
jmsTemplate.convertAndSend("queue.test",msg);
return "SUCCESS";
}
}
6.測試
啓動ActiveMQ,啓動XxxApplication服務;
發送消息測試,控制檯消費監聽者打印出了接收到的消息。
至此,實現了簡單的點對點的發送接收消息。
完整代碼:Github