當前位置:
首頁 > 最新 > spring整合activemq入門實戰

spring整合activemq入門實戰

一、準備工作

下載後解壓就完成安裝了。進入解壓目錄的bin目錄,選擇windows32或64,啟動activemq.bat就可以開啟activemq服務了。登陸http://localhost:8161/admin就可以進入mq的界面了,官方默認登錄名/密碼是:admin/admin,也可以在conf/jetty-realm.properties中自行修改,activemq界面如下:

簡單介紹下導航欄:

Queues:隊列方式消息。

Topics:主題方式消息。

Subscribers:消息訂閱監控查詢。

Connections:查看鏈接數,分別可以查看xmpp、ssl、stomp、openwire、ws和網路鏈接。

Network:網路鏈接數監控。

Scheduled:延遲和定時消息投遞

Send:發送消息數據

2.發送和接受消息的步驟:

a.發送消息

(1)創建連接使用的工廠類JMS ConnectionFactory

(2)使用管理對象JMS ConnectionFactory建立連接Connection,並啟動

(3)使用連接Connection 建立會話Session

(4)使用會話Session和管理對象Destination創建消息生產者MessageSender

(5)使用消息生產者MessageSender發送消息

b.接收消息

(1)創建連接使用的工廠類JMS ConnectionFactory

(2)使用管理對象JMS ConnectionFactory建立連接Connection,並啟動

(3)使用連接Connection建立會話Session

(4)使用會話Session和管理對象Destination創建消息接收者MessageReceiver

(5)使用消息接收者MessageReceiver接受消息,需要用setMessageListener將MessageListener介面綁定到MessageReceiver,消息接收者必須實現了MessageListener介面,需要定義onMessage事件方法。

二、spring集成

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

tcp://127.0.0.1:61616

destroy-method="stop">

三、代碼部分

1、生產者代碼

import javax.annotation.Resource;

import javax.jms.Destination;

import javax.jms.JMSException;

import javax.jms.Message;

import javax.jms.Session;

public class JmsSender {

@Resource(name = "jmsTemplate")

private JmsTemplate jmsTemplate;

public void sendMessage(Destination destination, final String msg) {

MessageCreator messageCreator = new MessageCreator() {

public Message createMessage(Session session) throws JMSException {

return session.createTextMessage(msg);

}

};

jmsTemplate.send(destination, messageCreator);

}

}

2、消費者代碼

import javax.jms.Message;

import javax.jms.MessageListener;

import javax.jms.TextMessage;

public class MsgManageTest implements MessageListener {

private static final Logger logger = Logger.getLogger(MsgManageTest.class);

@Override

public void onMessage(Message message) {

TextMessage tm = (TextMessage) message;

try {

String value = (String) tm.getText();

logger.info(value);

} catch (Exception e) {

logger.error("接收MQ消息發生異常!", e);

}

}

}

四、相關jar包

五、測試:

import javax.annotation.Resource;

import org.junit.Test;

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = { "classpath*:spring/applicationContext-web.xml" })

public class InvockService {

@Resource

private SendMsgService sendMsgService;

@Test

public void test1() throws Exception {

sendMsgService.sendMsg("103");

}

}

測試結果

查看控制台

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Java高級開發團長 的精彩文章:

TAG:Java高級開發團長 |