Spring整合RabbitMQ-02-RabbitTemplate

RabbitTemplate,消息模板

發送消息的關鍵類,該類提供了豐富的發送消息的方法,包括可靠性投遞的方法,回調監聽消息接口ConfirmCallback,返回值確認接口ReturnCallback等。一樣咱們須要進行注入到Spring容器中,而後直接使用。java

RabbitConfig

package com.wyg.rabbitmq.springamqp;

import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.connection.ConnectionFactory;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * RabbitAdmin
 * 
 * @author wyg0405@gmail.com
 * @date 2019-11-25 15:11
 * @since JDK1.8
 * @version V1.0
 */

@Configuration
public class RabbitConfig {

    @Bean
    public ConnectionFactory connectionFactory() {
        CachingConnectionFactory cachingConnectionFactory = new CachingConnectionFactory();
        cachingConnectionFactory.setAddresses("localhost:5672");
        cachingConnectionFactory.setUsername("guest");
        cachingConnectionFactory.setPassword("guest");
        cachingConnectionFactory.setVirtualHost("/");
        return cachingConnectionFactory;
    }

    /**
     * RabbitTemplate注入
     * 
     * @param connectionFactory
     * @return
     * @throws @author
     *             wyg0405@gmail.com
     * @date 2019/11/25 16:37
     */
    public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
        RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
        return rabbitTemplate;
    }

}

RabbitConfigTest

package com.wyg.rabbitmq.springamqp;

import java.io.UnsupportedEncodingException;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.core.*;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class RabbitConfigTest {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    /**
     * 測試RabbitTemplate,發送消息
     * 
     * @param null
     * @return
     * @throws @author
     *             wyg0405@gmail.com
     * @date 2019/11/25 16:42
     */
    @Test
    public void testRabbitTemplateSendMsg() throws UnsupportedEncodingException {
        String exchange = "testRabbitAdmin.exchange.topic";
        String routingKey = "topicKey.abc";
        MessageProperties messageProperties = new MessageProperties();
        messageProperties.getHeaders().put("type", "小雞");
        messageProperties.getHeaders().put("name", "jim");

        String content = "測試消息111";
        Message message = new Message(content.getBytes("UTF-8"), messageProperties);

        rabbitTemplate.convertAndSend(exchange, routingKey, message);
    }

}

運行結果spring

相關文章
相關標籤/搜索