RabbitMQ实战基础

来源:互联网 发布:多益网络登录器 编辑:程序博客网 时间:2024/06/05 22:24

整合spring,RabbitMQ的使用

相关的jar包3个: rabbitmq-client.jar,spring-amqp.jar,spring-rabbit.jar

spring-rabbitmq.xml的相关配置

<!--连接配置-->    <rabbit:connection-factory id="connectionFactory" host="${mq.host}" port="${mq.port}" username="${mq.username}" password="${mq.password}"/>    <rabbit:admin connection-factory="connectionFactory"/>    <!--定义交换器-->    <rabbit:template id="amqpTemplate" connection-factory="connectionFactory" exchange="cjlHb"/>    <!--定义queue-->    <rabbit:queue name="rabbitMQCjl" durable="true" exclusive="false" auto-delete="false"/>    <!--将queue绑定exchange上-->    <rabbit:topic-exchange name="cjlHb">        <rabbit:bindings>            <rabbit:binding queue="rabbitMQCjl" pattern="rabbitMQ.cjl.demo"></rabbit:binding>        </rabbit:bindings>    </rabbit:topic-exchange>    <rabbit:listener-container connection-factory="connectionFactory">        <rabbit:listener ref="rabbitMQDemo" method="listen" queue-names="rabbitMQCjl"/>    </rabbit:listener-container>    <bean id="rabbitMQDemo" class="org.cjl.demo06.RabbitMQDemoReal"/>    <bean id="rabbitMQSender" class="org.cjl.demo06.RabbitMQSender"/>

config相关配置

mq.host=127.0.0.1mq.username=guestmq.password=guestmq.port=5672

代码目录结构

相关代码

package org.cjl.demo06;import org.slf4j.Logger;import org.slf4j.LoggerFactory;/** * The type RabbitMQDemo. * * @author cjl * @Description: * @Date 2017/4/28 */public abstract class RabbitMQDemo<T extends Object> {    private static final Logger logger= LoggerFactory.getLogger(RabbitMQDemo.class);    public void listen(Object data){        logger.info("进来了。。。。");        //System.out.println("进来了。。。。");        String str=String.valueOf(data);        dosomething(str);        logger.info("结束了。。。。");        //System.out.println("结束了。。。。");    }    protected abstract void dosomething(String str);}
package org.cjl.demo06;/** * The type RabbitMQDemoReal. * * @author cjl * @Description: * @Date 2017/4/28 */public class RabbitMQDemoReal extends RabbitMQDemo{    @Override    protected void dosomething(String str) {        System.out.println("做了一些事。。。。"+str);    }}
package org.cjl.demo06;import org.springframework.amqp.core.AmqpTemplate;import org.springframework.beans.factory.annotation.Autowired;/** * The type RabbitMQSender. * * @author cjl * @Description: * @Date 2017/4/28 */public class RabbitMQSender {    @Autowired    private AmqpTemplate amqpTemplate;    public void sendMQ(){        for (int i = 0; i <10 ; i++) {            System.out.println("第"+i+"次发送消息开始");            amqpTemplate.convertAndSend("rabbitMQ.cjl.demo","我是RabbitMQ");            System.out.println("第"+i+"次发送消息结束");        }        for (int i = 0; i <10 ; i++) {            System.out.println("第"+i+"次发送其他消息开始");            amqpTemplate.convertAndSend("rabbitMQ.cjl.demo01","我是RabbitMQ");            System.out.println("第"+i+"次发送其他消息结束");        }    }}
package org.cjl.demo06;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;/** * The type RabbitMQMain. * * @author cjl * @Description: * @Date 2017/4/28 */public class RabbitMQMain {    public static void main(String[] args) {        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");        RabbitMQSender rm=applicationContext.getBean("rabbitMQSender",RabbitMQSender.class);        rm.sendMQ();    }}

日志打印结果
这里写图片描述

0 0
原创粉丝点击