zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    JS 信息提示弹框封装
    JS 功能弹框封装
    css3 弹框提示样式
    css3 弹框功能样式
    vscode使用Markdown文档编写
    .NET程序员提高效率的70多个开发工具
    Postman 使用方法详解
    【算法】从一组数中找出和为指定值的任意组合
    .NET Core的依赖注入
    .Net IOC框架入门之——Autofac
  • 原文地址:https://www.cnblogs.com/flz-0429/p/9879938.html
Copyright © 2011-2022 走看看