activemq傳送客戶端(封裝)
1、在pom中引入
<dependency>
<groupId>cn.activemq.client</groupId><artifactId>activemqclient</artifactId>
<version>1.0</version>
</dependency>
2、新增配置檔案
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
">
<context:annotation-config />
<context:component-scan base-package="cn.activemq.client.*"/>
<!-- 定義訊息佇列(Queue) -->
<bean id="cJActiveMQQueue" class="cn.activemq.client.CJActiveMQQueue">
<!-- 設定訊息佇列的名字 -->
<constructor-arg index="0" type="java.util.List">
<list>
<value>queue1</value>
</list>
</constructor-arg>
</bean>
<!--queue訊息生產者 -->
<bean id="producer" class="cn.cashier.service.mq.CashierMQProducer" init-method="init">
<property name="cJActiveMQTemplate" ref="cJActiveMQTemplate"></property>
</bean>
</beans>
3、新增訊息傳送介面
package cn.cashier.service.mq;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import cn.activemq.client.CJActiveMQProducer;
public class CashierMQProducer extends CJActiveMQProducer{
private static final Logger logger = (Logger) LoggerFactory
.getLogger(CashierMQProducer.class);
@Override
public void sendMessage(String arg0, Object arg1) {
logger.info("開始傳送訊息。。。");
super.run(arg0, arg1);
}
@Scheduled(cron="0/10 * * * * ? ")
public void test(){
sendMessage("queue1","test message");
}
}
4、sendmessage是固定方法
5、在test中針對佇列傳送訊息,改佇列的名稱和配置檔案中的佇列名稱需要一直,否則傳送不出去。
如果需要多個佇列,傳送不同的業務訊息,在test方法中實現即可。
相比較原生的方法,不需要在配置檔案中配置多個傳送例項。