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");
}
}
測試結果
查看控制台


TAG:Java高級開發團長 |