Browse Source

增加activeMQ支持

shuzheng 9 years ago
parent
commit
1b0f47f467
2 changed files with 78 additions and 0 deletions
  1. 16 0
      common/pom.xml
  2. 62 0
      common/src/main/java/com/zheng/common/util/JmsUtil.java

+ 16 - 0
common/pom.xml

@@ -57,6 +57,11 @@
             <artifactId>spring-test</artifactId>
             <version>${spring.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-jms</artifactId>
+            <version>${spring.version}</version>
+        </dependency>
         <!-- spring security -->
         <dependency>
             <groupId>org.springframework.security</groupId>
@@ -176,6 +181,17 @@
             <artifactId>thymeleaf-spring4</artifactId>
             <version>${thymeleaf.version}</version>
         </dependency>
+        <!-- ActiveMQ -->
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-core</artifactId>
+            <version>5.7.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.activemq</groupId>
+            <artifactId>activemq-pool</artifactId>
+            <version>5.7.0</version>
+        </dependency>
         <!-- servlet -->
         <dependency>
             <groupId>javax.servlet</groupId>

+ 62 - 0
common/src/main/java/com/zheng/common/util/JmsUtil.java

@@ -0,0 +1,62 @@
+package com.zheng.common.util;
+
+import org.apache.activemq.ScheduledMessage;
+import org.springframework.jms.core.JmsTemplate;
+import org.springframework.jms.core.MessageCreator;
+
+import javax.jms.*;
+import java.io.Serializable;
+
+/**
+ * Created by zhangshuzheng on 16/11/24.
+ */
+public class JmsUtil {
+
+    /**
+     * 发送文本消息
+     * @param jmsTemplate
+     * @param destination
+     * @param textMessage
+     */
+    public static void sendMessage(JmsTemplate jmsTemplate, Destination destination, final String textMessage) {
+        jmsTemplate.send(destination, new MessageCreator() {
+            public Message createMessage(Session session) throws JMSException {
+                return session.createTextMessage(textMessage);
+            }
+        });
+    }
+
+    /**
+     * 发送对象消息
+     * @param jmsTemplate
+     * @param destination
+     * @param objectMessage
+     */
+    public void sendMessage(JmsTemplate jmsTemplate, Destination destination, final Serializable objectMessage) {
+        jmsTemplate.send(destination, new MessageCreator() {
+            public Message createMessage(Session session) throws JMSException {
+                return session.createObjectMessage(objectMessage);
+            }
+        });
+    }
+
+    /**
+     * 延迟发送对象消息
+     * @param jmsTemplate
+     * @param destination
+     * @param objectMessage
+     * @param delay
+     */
+    public void sendMessageDelay(JmsTemplate jmsTemplate, Destination destination, final Serializable objectMessage, final long delay) {
+        jmsTemplate.send(destination, new MessageCreator() {
+            public Message createMessage(Session session) throws JMSException {
+                ObjectMessage om = session.createObjectMessage(objectMessage);
+                om.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_DELAY, delay);
+                om.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_PERIOD, 1 * 1000);
+                om.setLongProperty(ScheduledMessage.AMQ_SCHEDULED_REPEAT, 1);
+                return om;
+            }
+        });
+    }
+
+}