(16)SpringBoot整合RabbitMQ_springboot整合rabbitmq

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6


(16)SpringBoot整合RabbitMQ_User

图片来源:pexels网站

(16)SpringBoot整合RabbitMQ_java_02

(16)SpringBoot整合RabbitMQ_User_03

  摘要:本文主要讲解,SpringBoot整合 RabbitMQ,这里先只做简单的整合示范,详细用法见后续文章。

主要步骤如下:

1.引入依赖

2.配置文件

3.队列,路由配置

4.消息生产者

5.消息消费者

6.测试

7.User实体 
这个随意建一个实体类就好,或者不需要实体类,传个字符串,链表都可以,什么数据都可以传输。

1.引入依赖

<!--rabbitmq-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>


2.配置文件

根据自己的rabbit服务参数去配置

# rabbitmq
spring.rabbitmq.addresses=xx.xx.xx.xx:5672
spring.rabbitmq.username=root
spring.rabbitmq.password=root
spring.rabbitmq.publisher-confirms=true
spring.rabbitmq.virtual-host=/


3.队列,路由配置

这里我们配置队列,路由,交换机,本篇先只给出一个队列。

package com.java4all.rabbitmq1;

import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
* Author: momo
* Date: 2018/6/15
* Description:配置信息,队列,交换机
*/
@Configuration
public class RabbitConfig {

//队列 queue1
@Bean
public Queue queue1(){
return new Queue("queue1");
}

}


4.消息生产者

package com.java4all.rabbitmq1;

import com.java4all.entity.User;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
* Author: momo
* Date: 2018/6/15
* Description:消息生产者
*/
@Component
public class Producer1 {

@Autowired
RabbitTemplate rabbitTemplate;

/**发送消息*/
public void produce1(User user){
rabbitTemplate.convertAndSend("queue1",user);
}

}

5.消息消费者

监听指定的队列,接收到消息后进行处理。

package com.java4all.rabbitmq1;

import com.java4all.entity.User;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.context.annotation.Configuration;

import java.time.LocalTime;

/**
* Author: momo
* Date: 2018/6/15
* Description:消息消费者
*/
//监听队列queue1
@Configuration
@RabbitListener(queues = "queue1")
public class Consumer1 {

/**接收到信息后进行消费(处理)*/
@RabbitHandler
public void process1(User user){
System.out.println("Consumer1:"+ LocalTime.now()+"----"+user.toString());
}
}


6.测试

package com.java4all.rabbitmq1;

import com.java4all.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**
* Author: momo
* Date: 2018/6/15
* Description:
*/
@RestController
@RequestMapping(value = "mq1")
public class UserController1 {

@Autowired
Producer1 producer1;

@RequestMapping(value = "getUser1",method = RequestMethod.GET)
public void getUser1(){
for (int i = 0; i < 100; i++) {
User user = new User();
user.setId(i);
user.setUserName("name"+i);
user.setRealName("realName"+i);
user.setPassword("0000"+i);
//生产消息
producer1.produce1(user);

try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}


7.访问控制台

访问接口:http://localhost:8088/mq1/getUser1 
然后访问控制台(centOs安装rabbitMQ 有配置控制台的步骤):结果如下 

(16)SpringBoot整合RabbitMQ_java_04




(16)SpringBoot整合RabbitMQ_User_05

本文为  java4all





阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: SpringRabbitMQ