activeMQ1springmvc

生产者代码

 1 @Component("queueSender")
 2 public class QueueSender {
 3 
 4     @Autowired
 5     @Qualifier("jmsQueueTemplate")
 6     private JmsTemplate jmsTemplate;// 通过@Qualifier修饰符来注入对应的bean
 7 
 8     /**
 9      * 发送一条消息到指定的队列(目标)
10      * 
11      * @param queueName
12      *            队列名称
13      * @param message
14      *            消息内容
15      */
16     public void send(String queueName, final String message) {
17         jmsTemplate.send(queueName, new MessageCreator() {
18             public Message createMessage(Session session) throws JMSException {
19                 return session.createTextMessage(message);
20             }
21         });
22     }
23 
24     public void send(String queueName, final Map<String, String> map) {
25         jmsTemplate.send(queueName, new MessageCreator() {
26             public Message createMessage(Session session) throws JMSException {
27                 MapMessage message = session.createMapMessage();
28                 for (String key : map.keySet()) {
29                     message.setString(key, map.get(key));
30                 }
31                 return message;
32             }
33         });
34     }
35 
36 }

生产者配置

 1     <!-- 获取ActiveMQ提供的ConnectionFactory -->
 2     <!--设置ActiveMQ服务器地址及端口-->
 3     <!-- 如果连接网络:tcp://ip:61616;未连接网络:tcp://localhost:61616 以及用户名,密码-->
 4     <amq:connectionFactory id="amqConnectionFactory"
 5         brokerURL="tcp://localhost:61616" userName="admin" password="admin"  />
 6 
 7     <!-- 配置ActiveMQ服务器连接conneciotnFactory -->
 8     <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
 9         <!-- 将ActiveMQ提供的ConnectionFactory注入到Spring管理的connectionFactory中 -->  
10         <property name="targetConnectionFactory" ref="amqConnectionFactory"></property>
11         <!-- 同上,同理 -->
12         <!-- <constructor-arg ref="amqConnectionFactory" /> -->
13         <!-- 设置缓存大小 -->
14         <property name="sessionCacheSize" value="100" />
15     </bean>
16     
17     <!-- Spring提供的JMS工具类,它可以进行消息发送、接收等 -->
18     <!-- 定义JmsTemplate的Queue类型 -->
19     <bean id="jmsQueueTemplate" class="org.springframework.jms.core.JmsTemplate">
20         <!-- 这个connectionFactory对应的是我们定义的Spring提供的那个ConnectionFactory对象 -->  
21         <constructor-arg ref="connectionFactory" />
22         <!-- 非pub/sub模型(发布/订阅),即队列模式 -->
23         <property name="pubSubDomain" value="false" />
24     </bean>
25 
26     <!-- 定义JmsTemplate的Topic类型 -->
27     <bean id="jmsTopicTemplate" class="org.springframework.jms.core.JmsTemplate">
28          <!-- 这个connectionFactory对应的是我们定义的Spring提供的那个ConnectionFactory对象 -->  
29         <constructor-arg ref="connectionFactory" />
30         <!-- pub/sub模型(发布/订阅) -->
31         <property name="pubSubDomain" value="true" />
32     </bean>

消费者代码

 1 @Component
 2 public class QueueReceiver1 implements MessageListener {
 3 
 4     public void onMessage(Message message) {
 5         try {
 6             System.out.println("QueueReceiver1接收到消息:" + ((TextMessage) message).getText());
 7         } catch (JMSException e) {
 8             e.printStackTrace();
 9         }
10     }
11 }

消费者配置

1     <jms:listener-container destination-type="queue" container-type="default" connection-factory="connectionFactory" acknowledge="auto">
2         <jms:listener destination="test.queue" ref="queueReceiver1"/>
3     </jms:listener-container>
原文地址:https://www.cnblogs.com/flz-0429/p/9879938.html