properties 文件配置
1 # activeMq 地址 端口2 jms_url = tcp://127.0.0.1:616163 4 #队列名称5 jms_test_monitor_data_queue = test_queue
spring
1 <??> 2 <beans ="http://www.springframework.org/schema/beans" 3 ="http://www.w3.org/2001/ 4 ="http://activemq.apache.org/schema/core" 5 ="http://www.springframework.org/schema/jms" 6 xsi:schemaLocation="http://www.springframework.org/schema/beans 7 http://www.springframework.org/schema/beans/spring-beans-4.1.xsd 8 http://www.springframework.org/schema/jms 9 http://www.springframework.org/schema/jms/spring-jms-4.1.xsd10 http://activemq.apache.org/schema/core11 http://activemq.apache.org/schema/core/activemq-core-5.9.0.xsd12 ">13 <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">14 <property name="locations">15 <value>classpath:propertiesConfig/test.properties</value>16 </property>17 </bean>18 19 <bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">20 <constructor-arg index="0" value="${jms_url}"/>21 <property name="useAsyncSend" value="true"/>22 </bean>23 24 <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">25 <constructor-arg ref="amqConnectionFactory"/>26 <property name="sessionCacheSize" value="20" />27 </bean>28 29 <!-- 定义JmsTemplate的Queue类型 -->30 <bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate">31 <constructor-arg ref="connectionFactory" />32 <!-- 非pub/sub模型(发布/订阅),即队列模式 -->33 <property name="pubSubDomain" value="false" />34 </bean>35 36 <!-- 定义JmsTemplate的Topic类型 -->37 <bean id="jmsTopicTemplate" class="org.springframework.jms.core.JmsTemplate">38 <constructor-arg ref="connectionFactory" />39 <!-- pub/sub模型(发布/订阅) -->40 <property name="pubSubDomain" value="true" />41 </bean>42 43 <!-- 消息消费者 start-->44 45 <!-- 定义Queue** -->46 <!--<bean id="testMessageReceiver" />47 <jms:listener-container destination-type="queue" container-type="default" connection-factory="connectionFactory" acknowledge="auto">48 <jms:listener destination="${jms_test_monitor_data_queue}" ref="testMessageReceiver"/>49 </jms:listener-container> -->50 51 <!-- 定义Topic** -->52 <!--<jms:listener-container destination-type="topic" container-type="default" connection-factory="connectionFactory" acknowledge="auto">53 <jms:listener destination="test.topic" ref="topicReceiver1"/>54 <jms:listener destination="test.topic" ref="topicReceiver2"/>55 </jms:listener-container> -->56 57 <!-- 定义activme 队列监听 -->58 <!-- 对应的监听类, com.maven.project.web.jmsMessageOper.TestMonitorQueue -->60 <bean id="testMessageReceiver" class="com.maven.project.web.jmsMessageOper.TestMonitorQueue"/> 61 <bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">62 <property name="connectionFactory" ref="connectionFactory"/>63 <property name="destinationName" value="${jms_test_monitor_data_queue}"/>64 <property name="messageListener" ref="testMessageReceiver"/>65 </bean>66 67 <!-- 消息消费者 end -->68 </beans>
activemq 监听类
1 package com.maven.project.web.jmsMessageOper; 2 3 import javax.jms.JMSException; 4 import javax.jms.Message; 5 import javax.jms.MessageListener; 6 import javax.jms.TextMessage; 7 8 public class TestMonitorQueue implements MessageListener { 9 10 public void onMessage(Message message) {11 if (message instanceof TextMessage) {12 TextMessage textMessage = (TextMessage) message;13 try {14 System.out.println("============"+textMessage.getText());15 } catch (JMSException e) {16 e.printStackTrace();17 }18 }19 }20 }
activemq 消息发送类
1 package com.maven.project.web.jmsMessageOper; 2 3 import java.io.Serializable; 4 import java.util.Map; 5 6 import javax.jms.BytesMessage; 7 import javax.jms.JMSException; 8 import javax.jms.MapMessage; 9 import javax.jms.Message;10 import javax.jms.Session;11 import javax.jms.StreamMessage;12 13 import org.springframework.beans.factory.annotation.Autowired;14 import org.springframework.jms.core.JmsTemplate;15 import org.springframework.jms.core.MessageCreator;16 import org.springframework.stereotype.Controller;17 18 @Controller19 public class MessageSender {20 21 @Autowired22 private JmsTemplate jmsQueueTemplate;23 24 public void sendTextMessage(final String queueName, final String txtMessage) {25 jmsQueueTemplate.send(queueName, new MessageCreator() {26 public Message createMessage(Session session) throws JMSException {27 return session.createTextMessage(txtMessage);28 }29 });30 }31 32 public void sendObjectMessage(final String queueName, final Object objectMessage) {33 jmsQueueTemplate.send(queueName, new MessageCreator() {34 public Message createMessage(Session session) throws JMSException {35 return session.createObjectMessage((Serializable) objectMessage);36 }37 });38 }39 40 public void sendMapMessage(final String queueName, final Map<String, Object> mapMessage) {41 jmsQueueTemplate.send(queueName, new MessageCreator() {42 @SuppressWarnings("unchecked")43 public Message createMessage(Session session) throws JMSException {44 MapMessage mapMessage = session.createMapMessage();45 for (Map.Entry<String, Object> entry : ((Map<String, Object>) mapMessage).entrySet()) {46 mapMessage.setObject(entry.getKey(), entry.getValue());47 }48 return mapMessage;49 }50 });51 }52 53 public void sendByteMessage(final String queueName, final byte[] message) {54 jmsQueueTemplate.send(queueName, new MessageCreator() {55 public Message createMessage(Session session) throws JMSException {56 BytesMessage bytesMessage = session.createBytesMessage();57 bytesMessage.writeBytes(message);58 return bytesMessage;59 }60 });61 }62 63 public void sendStreamMessage(final String queueName, final Object message) {64 jmsQueueTemplate.send(queueName, new MessageCreator() {65 public Message createMessage(Session session) throws JMSException {66 StreamMessage streamMessage = session.createStreamMessage();67 streamMessage.writeObject(message);68 return streamMessage;69 }70 });71 }72 }
消息发送调用
1 package com.maven.project.web.action; 2 3 import javax.servlet.http.HttpServletRequest; 4 import javax.servlet.http.HttpServletResponse; 5 6 import org.springframework.beans.factory.annotation.Autowired; 7 import org.springframework.stereotype.Controller; 8 import org.springframework.web.bind.annotation.RequestMapping; 9 13 import com.maven.project.tools.utils.SenderMessageQueueName;14 import com.maven.project.web.jmsMessageOper.MessageSender;15 16 @Controller17 @RequestMapping("/user")18 public class UserLoginAction {19 20 @Autowired21 private MessageSender messageSender;22 32 @RequestMapping("/login")33 public void login(HttpServletRequest request,HttpServletResponse response){35 messageSender.sendTextMessage("test_queue","消息发送内容"); // test_queue 消息队列名称37 }38 }
maven pom 配置
1 <!-- activemq相关依赖 -->2 <dependency>3 <groupId>org.apache.activemq</groupId>4 <artifactId>activemq-core</artifactId>5 <version>5.7.0</version>6 </dependency>
activemq server download
原标题:activemq java web spring 配置
关键词:JAVA