Springboot+rabbitMQ(只连接一个rabbitMQ)数据传输实例
2019-04-02 17:18
477 查看
一、简介
本文使用的基础框架为Springboot,连接了一个rabbitMQ,使用Springboot框架提供的api进行数据传输。即Springboot+rabbitMQ的简单实现代码
二、代码
application.properties配置
#rabbitmq 相关配置 spring.application.name=spirng-boot-rabbitmq spring.rabbitmq.host=地址 spring.rabbitmq.port=端口 spring.rabbitmq.username=用户名 spring.rabbitmq.password=密码
数据发送
@Autowired private AmqpTemplate rabbitTemplate; private final Log logger = LogFactory.getLog(SendMessage.class); public void send(String message) { //第一个参数,交换机名称,第二个参数,routingkey,第三个参数,发送的数据 this.rabbitTemplate.convertAndSend("队列名","",message); logger.info(message+"已经发送"); }
数据监听
//queues为渠道名,autoStartup为是否自动开启,id为该监听名字,containerFactory为这个监听的连接工厂(连接一个rabbitMQ时可以忽略) @RabbitListener(queues ="acquire-alarm-volume", autoStartup= "false", id = "Message",containerFactory = "myFactory") public void process(byte [] message) { System.out.pring(new String(message)) }
上述代码使用的交换机,渠道可以通过rabbitMQ的web管理端手动设置,也可以使用代码声明
声明代码
/* 定义连接,rabbitMQ */ @Bean(name = "myConnectionFactory") @Primary public ConnectionFactory myConnectionFactory( @Value("${spring.rabbitmq.my.host}") String host, @Value("${spring.rabbitmq.my.port}") int port, @Value("${spring.rabbitmq.my.username}") String username, @Value("${spring.rabbitmq.my.password}") String password ) { return connectionFactory(host, port, username, password); } public CachingConnectionFactory connectionFactory(String host,int port,String username,String password){ CachingConnectionFactory connectionFactory = new CachingConnectionFactory(); connectionFactory.setHost(host); connectionFactory.setPort(port); connectionFactory.setUsername(username); connectionFactory.setPassword(password); // connectionFactory.setVirtualHost(virtual_host); return connectionFactory; } @Bean(name = "myRabbitTemplate") @Primary public RabbitTemplate myRabbitTemplate( @Qualifier("myConnectionFactory") ConnectionFactory connectionFactory ) { RabbitTemplate myRabbitTemplate = new RabbitTemplate(connectionFactory); return myRabbitTemplate; } @Bean(name = "myFactory") @Primary public SimpleRabbitListenerContainerFactory myFactory( SimpleRabbitListenerContainerFactoryConfigurer configurer, @Qualifier("myConnectionFactory") ConnectionFactory connectionFactory ) { SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory(); configurer.configure(factory, connectionFactory); return factory; } /* 声明交换机 amq.topic为Topic类型交换机 */ @Bean public TopicExchange basicExchange(){ return new TopicExchange("amq.topic", true,false); } /* 声明消息队列 启动创建,停止自动删除 */ @Bean(name = "basicQueue") public Queue basicQueue(){ return new Queue("acquire-alarm-volume", false,true,true); } /* 队列绑定交换机 *.*.*.*.*.*为routingkey */ @Bean public Binding basicBinding(){ return BindingBuilder.bind(basicQueue()).to(basicExchange()).with("*.*.*.*.*.*");}
交换机与队列的声明代码,如果rabbitMQ中已经存在,那么声明里的各项参数,需与rabbitMQ中已经存在的设置参数相同,否则报错,在错误信息中很容易看出哪个参数是不匹配的。
如果在rabbitMQ中不存在声明的交换机和渠道,在程序启动时会自动创建,如果在声明参数中,自动删除属性为true,那么当程序运行停止时,队列会自动删除。
简单的实例如上,关于数据监听rabbitListener注解的使用会单独有一篇文章说明。
相关文章推荐
- Springboot+rabbitMQ(连接多个rabbitMQ)代码实例
- springboot+rabbitmq 整合实例
- SpringBoot+RabbitMQ整合+简单实例
- spring boot + rabbitmq实例
- 【学习笔记】spring boot + zookeeper + dubbo + rabbitMq + mysql + thymeleaf/freemarker + mybaits 代码试验
- springboot+rabbitmq整合
- springmvc+rabbitmq实例
- Spring Rabbitmq HelloWorld实例
- springboot+rabbitMq整合开发实战二:模拟用户下单的过程
- Spring Boot整合RabbitMQ实例
- springboot RabbitMq的安装以及使用
- spring boot rabbitmq 多MQ配置 自动 创建 队列 RPC
- 带着新人学springboot的应用05(springboot+RabbitMQ 上)
- spring boot+RabbitMQ
- Spring Boot 日期数据格式转换@JsonFormat实例
- Spring Boot RabbitMQ快速入门 (2)
- SpringBoot整合Netty并使用Protobuf进行数据传输(附工程)
- springboot+rabbitmq整合
- springboot+rabbitMq整合开发实战一
- springboot 集成rabbitmq 实例