RabbitTemplate是我们在与SpringAMQP整合的时候进行发送消息的关键类
该类提供了丰富的发送消息的方法,包括可靠性消息投递、回调监听消息接口ConfirmCallback、返回值确认接口
ReturnCallback等等同样我们需要注入到Spring容器中,然后直接使用。
在与spring整合时需要实例化,但是在与Springboot整合时,只需要添加配置文件即可

首先将其注入到bean里面:

    @Bean
public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {
RabbitTemplate rabbitTemplate = new RabbitTemplate(connectionFactory);
return rabbitTemplate;
}

然后在其他类引用:

package com.dwz.spring;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.AmqpException;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessagePostProcessor;
import org.springframework.amqp.core.MessageProperties;
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 TestDwz {
@Autowired
private RabbitTemplate rabbitTemplate; @Test
public void testMessage01() {
MessageProperties messageProperties = new MessageProperties();
messageProperties.getHeaders().put("desc", "信息描述。。。");
messageProperties.getHeaders().put("type", "自定义消息类型。。。");
Message message = new Message("Hello RabbitMQ!".getBytes(), messageProperties); rabbitTemplate.convertAndSend("topic001", "spring.amqp", message, new MessagePostProcessor() { @Override
public Message postProcessMessage(Message message) throws AmqpException {
System.out.println("----添加额外的设置----");
message.getMessageProperties().getHeaders().put("desc", "额外修改的信息描述");
message.getMessageProperties().getHeaders().put("attr", "额外新加的属性");
return message;
}
});
} @Test
public void testMessage02() {
//创建消息
MessageProperties messageProperties = new MessageProperties();
messageProperties.setContentType("text/plain");
Message message = new Message("spring 消息".getBytes(), messageProperties);
rabbitTemplate.send("topic001", "spring.abc", message); rabbitTemplate.convertAndSend("topic001", "spring.amqp", "hello object message send!");
}
}

最新文章

  1. react.js 生命周期componentDidUpdate的另类用法:防止页面过渡刷新
  2. 【svn】svn 项目地址修改
  3. HTTP协议-标签简介
  4. 《UNIX环境高级编程》笔记--信号集
  5. h5可预览 图片ajax上传 (补更),后台数据获取方法---php
  6. Android 主题theme说明 摘记
  7. JAVA基础-集合(二)
  8. HTML多表头表格
  9. 脱离文档流两操作,float和position:absolute的区别
  10. FCC(ES6写法) No repeats please
  11. CS61B HW0
  12. Go Web:URLs
  13. shell 变量相关的命令
  14. Android 操作UI线程的一些方法
  15. Keras学习笔记。
  16. CEF解决加载慢问题
  17. Linux安装和配置Vim7.4
  18. 当需要给<span>标签设宽度
  19. Android开发规范——命名
  20. Graph_Master(连通分量_H_Trajan+拓扑序dp)

热门文章

  1. Linq操作之Except,Distinct,Left Join 【转】
  2. MFC之CImageList(1)
  3. docker基础知识
  4. [Android] Installation failed due to: ''pm install-create -r -t -S 4590498' returns error 'UNSUPPORTED''
  5. 转:git常用操作
  6. 解决GitHub下载资源慢的问题
  7. Java反射【二、Class类的使用】
  8. In Unix, what is tar, and how do I use it?
  9. 构建虚拟工控环境系列 - 西门子虚拟PLC
  10. Windows Server 2016分层式存储,使用PowerShell修改底层介质类型