1. 程式人生 > >activemq傳送客戶端(封裝)

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方法中實現即可。

相比較原生的方法,不需要在配置檔案中配置多個傳送例項。