zoukankan      html  css  js  c++  java
  • Java使用RabbitMQ之整合Spring(消费者)

     依赖包:

            <!--RabbitMQ集成spring-->
            <!-- https://mvnrepository.com/artifact/org.springframework.amqp/spring-rabbit -->
            <dependency>
                <groupId>org.springframework.amqp</groupId>
                <artifactId>spring-rabbit</artifactId>
                <version>2.0.6.RELEASE</version>
            </dependency>

    消息者Spring配置文件

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     4        xmlns:context="http://www.springframework.org/schema/context"
     5        xmlns:rabbit="http://www.springframework.org/schema/rabbit"
     6        xsi:schemaLocation="
     7             http://www.springframework.org/schema/beans
     8                 http://www.springframework.org/schema/beans/spring-beans.xsd
     9             http://www.springframework.org/schema/context
    10                 http://www.springframework.org/schema/context/spring-context.xsd
    11             http://www.springframework.org/schema/rabbit
    12                 http://www.springframework.org/schema/rabbit/spring-rabbit-1.0.xsd">
    13 
    14     <!-- 连接服务配置 -->
    15     <rabbit:connection-factory id="connectionFactory"
    16                                host="10.15.1.26" username="admin" password="admin" port="5672"
    17                                virtual-host="/test_host" channel-cache-size="5"/>
    18 
    19     <!--MQ的管理,包括队列、交换器的声明等-->
    20     <rabbit:admin connection-factory="connectionFactory"/>
    21 
    22     <!-- queue 队列声明 -->
    23     <rabbit:queue durable="true"
    24                   auto-delete="false" exclusive="false" name="test.spring.queue"/>
    25 
    26     <!-- exchange queue binging key 绑定 -->
    27     <rabbit:direct-exchange name="spring.exchange"
    28                             durable="true" auto-delete="false">
    29         <rabbit:bindings>
    30             <rabbit:binding queue="test.spring.queue" key="spring.queue.key"/>
    31         </rabbit:bindings>
    32     </rabbit:direct-exchange>
    33 
    34     <!-- spring template声明 -->
    35     <rabbit:template id="amqpTemplate" exchange="spring.exchange" routing-key="spring.queue.key"
    36                      connection-factory="connectionFactory"/>
    37 
    38 
    39     <!-- 监听生产者发送的消息开始 -->
    40 
    41     <!-- 声明消息转换器为SimpleMessageConverter -->
    42     <bean id="messageConverter"
    43           class="org.springframework.amqp.support.converter.SimpleMessageConverter">
    44     </bean>
    45 
    46     <!-- 用于接收消息的处理类 -->
    47     <bean id="myListener" class="org.study.model.MyListener"/>
    48 
    49     <!-- 用于消息的监听的代理类MessageListenerAdapter -->
    50     <bean id="receiveListenerAdapter"
    51           class="org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter">
    52         <constructor-arg ref="myListener" />
    53         <property name="defaultListenerMethod" value="onMessage"></property>
    54     </bean>
    55 
    56     <!-- 用于消息的监听的容器类SimpleMessageListenerContainer,对于queueName的值一定要与定义的Queue的值相同 -->
    57     <bean id="listenerContainer"
    58           class="org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer">
    59         <property name="queueNames" value="test.spring.queue"></property>
    60         <property name="connectionFactory" ref="connectionFactory"></property>
    61         <property name="messageListener" ref="receiveListenerAdapter"></property>
    62     </bean>
    63 
    64 </beans>

    消费者消息处理代码:

     1 package org.study.model;
     2 
     3 /**
     4  * RabbitMQ与Spring整合
     5  * 消费者消息处理类
     6  */
     7 public class MyListener {
     8     public void onMessage(String message) {
     9         System.out.println(" [RECV] : " + message);
    10     }
    11 
    12 }

    运行代码:

     1 package org.study.spring5;
     2 
     3 import org.springframework.context.ApplicationContext;
     4 import org.springframework.context.support.ClassPathXmlApplicationContext;
     5 
     6 /**
     7  * RabbitMQ与Spring整合
     8  * 消费者
     9  */
    10 public class SpringConsumer {
    11 
    12     public static void main(String args[]) {
    13         ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring/consumer-spring-config.xml");
    14 
    15     }
    16 }
  • 相关阅读:
    .Net Intelligencia.UrlRewriter 重定向参数中文支持配置方法
    Debian 9 vsftpd: version 3.0.3 配置
    Debian 静态网络配置
    iptables常用配置
    Debian防御DDOS(简易版本)
    Debian9+PHP7+MySQL+Apache2配置Thinkphp运行环境LAMP
    Discuz3.3注册程序修改添加记录推荐人账号
    .NetCore WPF 指定一个相对路径的图片,报错“找不到资源”
    C语言的unsigned做双目运算符的奇怪问题
    关于人脸识别的视频图片处理
  • 原文地址:https://www.cnblogs.com/gongxr/p/9648172.html
Copyright © 2011-2022 走看看