SpringBoot学习 集成RabbitMQ(九)
原创
©著作权归作者所有:来自51CTO博客作者日薪灬越亿的原创作品,请联系作者获取转载授权,否则将追究法律责任
Windows安装RabbitMQ
先安装Erlang
下载地址:
http://erlang.org/download/otp_win64_20.3.exe
RabbitMQ Server 3.7.4下载地址
https://bintray.com/rabbitmq/all/download_file?file_path=rabbitmq-server%2F3.7.4%2Frabbitmq-server-3.7.4.exe
安装好后,启动服务
开启web插件
进入rabbitmq安装目录的sbin目录,在命令行界面开启web插件
rabbitmq-plugins enable rabbitmq_management
重新启动reabbitmq服务,在地址栏输入http://localhost:15672/
使用默认用户 guest/guest登陆界面
新增用户,并设置权限
用新创建的caojiulu用户登陆,发现新用户已经新增成功
设置权限
点击这用户,设置虚拟主机的权限(全部可读,可写,可配置)
SpringBoot中使用RabbitMq
修改pom文件,增加rabbitmq依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
修改配置properties文件,增加rabbitmq的连接信息
## rabbitmq config
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=caojiulu
spring.rabbitmq.password=123456
创建Rabbit配置类,用来配置队列,交换器,路由等高级信息
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RabbitConfig {
@Bean
public Queue firstQueue(){
//创建一个队列,名称为:caojiulu
return new Queue("caojiulu");
}
}
创建消息的生产者
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Component
public class Sender {
@Resource
private AmqpTemplate rabbitTemplate;
public void send() {
rabbitTemplate.convertAndSend("caojiulu", "this a messages !!!");
}
}
创建消息的消费者
@Component
//定义该类需要监听的队列
@RabbitListener(queues = "caojiulu")
public class Receiver {
@RabbitHandler //指定对消息的处理
public void process(String msg) {
System.out.println("receive msg : " + msg);
}
}
测试类:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = App.class)
public class RabbitmqTest {
@Resource
private Sender sender;
@Test
public void testRabbitmq() throws Exception {
sender.send();
}
}