Springboot整合ActiveMQ實現消息隊列的過程淺析
確保你啟動了自己電腦的activemq。
pom中導入坐標
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
</dependency>書寫yml配置
spring:
activemq:
broker-url: tcp://localhost:61616
jms:
template:
default-destination: my #消息隊列的默認名字
pub-sub-domain: false #是否開啟消息訂閱模式
業(yè)務層代碼
@Service
public class MessageServiceActive implements MessageService {
@Autowired
private JmsMessagingTemplate template;
@Override
public void getMessage(String id) {
template.convertAndSend("AA",id); //自定義消息隊列名字
System.out.println("待發(fā)送短信的訂單已納入處理隊列,id:"+id);
}
@Override
public String doMessage() {
String id=template.receiveAndConvert("AA",String.class);
return id;
}此時,你書寫控制層代碼就可以實現消息隊列了,不過有一個缺陷,那就是處理消息的時候必須手動書寫網址,調用執(zhí)行對應的方法才可以,不過我們可以通過監(jiān)聽器來實現自動化,就是一旦有消息產生就會立即處理。
監(jiān)聽器代碼
@Component
public class MessageListener {
@Autowired
private JmsMessagingTemplate template;
@JmsListener(destination = "AA") //要監(jiān)聽的消息隊列名稱
@SendTo(value = "BB") //自動化處理完,還可以把該消息傳遞給下一了消息隊列
public String receive(){
String id=template.receiveAndConvert("AA",String.class);
System.out.println("已完成短信發(fā)送業(yè)務,id:"+id+"\n");
return "new_"+id; //利用返回值轉發(fā)給下一個
}
}業(yè)務層代碼
@Service
public class MessageServiceActive implements MessageService {
@Autowired
private JmsMessagingTemplate template;
@Override
public void getMessage(String id) {
template.convertAndSend("AA",id);
System.out.println("待發(fā)送短信的訂單已納入處理隊列,id:"+id);
}
}這樣我們的消息就可以流水線似的處理了,這是點對點的消息隊列方式,還有訂閱式的。
到此這篇關于Springboot整合ActiveMQ實現消息隊列的過程淺析的文章就介紹到這了,更多相關Springboot整合ActiveMQ內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
淺談JAVA 線程狀態(tài)中可能存在的一些誤區(qū)
這篇文章主要介紹了淺談JAVA 線程狀態(tài)中可能存在的一些誤區(qū),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04
關于mybatis callSettersOnNulls 配置解析
這篇文章主要介紹了關于mybatis callSettersOnNulls 配置,非常不錯,具有一定的參考借鑒價值 ,需要的朋友可以參考下2018-06-06
SpringBoot+SseEmitter和Vue3+EventSource實現實時數據推送
本文主要介紹了SpringBoot+SseEmitter和Vue3+EventSource實現實時數據推送,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2025-03-03

