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