RabbitMQ java客户端集成 Spring 开发环境

1、在pom.xml文件中引入rabbitmq坐标

    
        <dependency>
            <groupId>org.springframework.amqpgroupId>
            <artifactId>spring-rabbitartifactId>
            <version>2.0.2.RELEASEversion>
        dependency>

2、spring配置文件编写 (笔者独立出一个配置文件 spring-rabbit.xml 装载RabbitMQ配置)

xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:rabbit="http://www.springframework.org/schema/rabbit"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/rabbit
    http://www.springframework.org/schema/rabbit/spring-rabbit.xsd">

    <bean id="fooMessageListerer"
        class="com.hao.web.listener.FooMessageListerer" />

    
    <rabbit:connection-factory
        id="connectionFactory" host="127.0.0.1" port="5672" username="guest"
        password="guest" virtual-host="/" requested-heartbeat="60" />

    
    <rabbit:template id="amqpTemplate"
        connection-factory="connectionFactory" exchange="myExchange"
        routing-key="foo.bar" />
    
    
    <rabbit:admin connection-factory="connectionFactory" />

    
    <rabbit:queue name="myQueue" />

    
    <rabbit:topic-exchange name="myExchange">
        <rabbit:bindings>
            <rabbit:binding queue="myQueue" pattern="foo.*">rabbit:binding>
        rabbit:bindings>
    rabbit:topic-exchange>
    
    
    <rabbit:listener-container connection-factory="connectionFactory">
        <rabbit:listener ref="fooMessageListerer"
            queue-names="myQueue" />
    rabbit:listener-container>

beans>

3、编写监听类

package com.hao.web.listener;

import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;

/**
 * @desc rabbitMQ监听器
 * @author zhanh247
 */
public class FooMessageListerer implements MessageListener {

    @Override
    public void onMessage(Message message) {
        String msg = new String(message.getBody());
        System.out.println("spring rabbitmq receive message: " + msg);
    }

}

4、编写发送消息的测试类

package com.hao;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "classpath:spring/spring-rabbit.xml" })
public class RabbitMqTest {

    @Autowired
    RabbitTemplate rabbitTemplate;

    @Test
    public void sendMessage() {
        rabbitTemplate.convertAndSend("hello spring-rabbit...");
    }

}

5、启动spring项目,运行测试类,发送测试消息

RabbitMQ java客户端集成 Spring 开发环境_第1张图片

看到控制台有如下日志打印出,则说明集成已完成。

你可能感兴趣的:(RabbitMQ java客户端集成 Spring 开发环境)