zoukankan      html  css  js  c++  java
  • RabbitMQ —— spring整合发送同步消息

    POM.xml

    <properties>  
        <rabbitmq.version>3.0.4</rabbitmq.version>  
        <spring.amqp.version>1.1.1.RELEASE</spring.amqp.version>  
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
        <spring.version>3.1.2.RELEASE</spring.version>  
    </properties>  
    <dependencies>  
        <dependency>  
            <groupId>com.rabbitmq</groupId>  
            <artifactId>amqp-client</artifactId>  
            <version>${rabbitmq.version}</version>  
        </dependency>  
    
        <dependency>  
            <groupId>org.springframework.amqp</groupId>  
            <artifactId>spring-rabbit</artifactId>  
            <version>${spring.amqp.version}</version>  
        </dependency>  
    
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-core</artifactId>  
            <version>${spring.version}</version>  
            <exclusions>  
                <!-- Exclude Commons Logging in favor of SLF4j -->  
                <exclusion>  
                    <groupId>commons-logging</groupId>  
                    <artifactId>commons-logging</artifactId>  
                </exclusion>  
            </exclusions>  
        </dependency>  
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-context</artifactId>  
            <version>${spring.version}</version>  
        </dependency>  
    
        <dependency>  
            <groupId>org.springframework</groupId>  
            <artifactId>spring-test</artifactId>  
            <version>${spring.version}</version>  
            <scope>test</scope>  
        </dependency>  
    
        <dependency>  
            <groupId>junit</groupId>  
            <artifactId>junit</artifactId>  
            <version>4.8.1</version>  
            <scope>test</scope>  
        </dependency>  
    
        <dependency>  
            <groupId>org.springframework.amqp</groupId>  
            <artifactId>spring-amqp</artifactId>  
            <version>${spring.amqp.version}</version>  
            <classifier>sources</classifier>  
            <scope>compile</scope>  
        </dependency>  
        <dependency>  
            <groupId>commons-lang</groupId>  
            <artifactId>commons-lang</artifactId>  
            <version>2.6</version>  
        </dependency>  
        <dependency>  
            <groupId>org.slf4j</groupId>  
            <artifactId>slf4j-api</artifactId>  
            <version>1.5.10</version>  
        </dependency>  
        <dependency>  
            <groupId>org.slf4j</groupId>  
            <artifactId>jcl-over-slf4j</artifactId>  
            <version>1.5.10</version>  
            <scope>runtime</scope>  
        </dependency>  
        <dependency>  
            <groupId>org.slf4j</groupId>  
            <artifactId>slf4j-log4j12</artifactId>  
            <version>1.5.10</version>  
            <scope>runtime</scope>  
        </dependency>  
        <dependency>  
            <groupId>log4j</groupId>  
            <artifactId>log4j</artifactId>  
            <version>1.2.14</version>  
            <scope>runtime</scope>  
        </dependency>  
        <dependency>  
            <groupId>org.aspectj</groupId>  
            <artifactId>aspectjweaver</artifactId>  
            <version>1.6.9</version>  
        </dependency>  
    </dependencies>
    View Code

    rabbitmq.properties

    rabbit.hosts=192.168.42.128
    rabbit.username=root
    rabbit.password=123456
    rabbit.virtualHost=/
    rabbit.queue=spring.queue.sync
    #routingkey的名称默认为Queue的名称
    rabbit.routingKey=spring.queue.sync
    View Code

    applicationContext.xml

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
        <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />  
        <property name="ignoreResourceNotFound" value="true" />  
        <property name="locations">  
            <list>
                <!-- 标准配置 -->
                <value>classpath*:rabbitmq.properties</value>
            </list>
        </property>
    </bean> 
    <import resource="applicationContext-rabbitmq-sync.xml"/>
    View Code

    applicationContext-rabbitmq-sync.xml

    <!-- 创建connectionFactory -->  
    <bean id="rabbitConnectionFactory" class="org.springframework.amqp.rabbit.connection.CachingConnectionFactory">  
        <constructor-arg value="${rabbit.hosts}"/>  
        <property name="username" value="${rabbit.username}"/>  
        <property name="password" value="${rabbit.password}"/>  
        <property name="virtualHost" value="${rabbit.virtualHost}"/>  
        <property name="channelCacheSize" value="5"/>  
    </bean>  
      
    <!--通过指定下面的admin信息,当前producer中的exchange和queue会在rabbitmq服务器上自动生成 -->
    <!-- <bean id="rabbitAdmin" class="org.springframework.amqp.rabbit.core.RabbitAdmin">  
        <constructor-arg ref="rabbitConnectionFactory" />  
    </bean>   -->
      
      
    <!--定义rabbit template用于数据的接收和发送 -->
    <bean id="rabbitTemplate" class="org.springframework.amqp.rabbit.core.RabbitTemplate">  
        <constructor-arg ref="rabbitConnectionFactory"></constructor-arg>  
        <property name="queue" value="${rabbit.queue}"></property>  
        <property name="routingKey" value="${rabbit.routingKey}"></property>    
    </bean>  
      
    <!-- 声明Queue并设定Queue的名称 -->    
    <!--     <bean id="helloWorldQueue"   -->  
    <!--         class="org.springframework.amqp.core.Queue">   -->  
    <!--         <constructor-arg value="${rabbit.queue}"></constructor-arg>   -->  
    <!--     </bean>   -->
    View Code

    Producer.java

    public class Producer {
        public static void main(String[] args) {  
            ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");  
            AmqpTemplate amqpTemplate = context.getBean(RabbitTemplate.class);    
            amqpTemplate.convertAndSend("test spring sync");
            System.out.println("发送成功");
        }  
    }
    View Code

    Consumer.java

    public class Consumer {
        public static void main(String[] args) {  
            ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");  
            AmqpTemplate amqpTemplate = context.getBean(RabbitTemplate.class);    
            System.out.println("Received: " + amqpTemplate.receiveAndConvert());    
        }  
    }
    View Code
  • 相关阅读:
    Linux常用操作命令
    Linux下查看CPU型号,内存大小,硬盘空间命令
    PhpExcel中文帮助手册|PhpExcel使用方法
    PHP操作cookie函数:setcookie()与setrawcookie()
    利用phantomjs模拟QQ自动登录
    无法在同一张表上查询和更新的问题解决方法
    App开放接口api安全性—Token签名sign的设计与实现
    开放api接口签名验证
    bootstrap字体图标
    booatrap中的表格样式
  • 原文地址:https://www.cnblogs.com/yifanSJ/p/9034633.html
Copyright © 2011-2022 走看看