栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java > SpringBoot

SpringBoot整合RabbitMQ

SpringBoot 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot整合RabbitMQ

RabbitMQ是开源消息队列系统,用erlang语言开发。如果不了解可以查看官网http://www.rabbitmq.com/

这篇文章介绍一个springboot简单整合RabbitMQ。

1.安装rabbitmq,自行百度即可,方法很多。

2.启动rabbitmq,成功如下图:

可以访问http://localhost:15672/查看管理页面

新建项目,pom文件加入依赖,完整pom如下:



	4.0.0

	com.dalaoyang
	springboot_rabbitmq
	0.0.1-SNAPSHOT
	jar

	springboot_rabbitmq
	springboot_rabbitmq

	
		org.springframework.boot
		spring-boot-starter-parent
		1.5.9.RELEASE
		 
	

	
		UTF-8
		UTF-8
		1.8
	

	
		
			org.springframework.boot
			spring-boot-starter-web
		

		
			org.springframework.boot
			spring-boot-devtools
			runtime
		
		
			org.springframework.boot
			spring-boot-starter-test
			test
		
		
			org.springframework.boot
			spring-boot-starter-amqp
		
	

	
		
			
				org.springframework.boot
				spring-boot-maven-plugin
			
		
	


新建一个消息发送者Sender,使用AmqpTemplate将消息发送到消息队列message中去。代码如下:

package com.dalaoyang.sender;

import org.apache.log4j.Logger;
import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.Date;


@Component
public class Sender {
    Logger logger = Logger.getLogger(Sender.class);

    @Autowired
    private AmqpTemplate amqpTemplate;

    public String send(){
        String context = "简单消息发送";
        logger.info("简单消息发送时间:"+new Date());
        amqpTemplate.convertAndSend("message", context);
        return "发送成功";
    }
}

创建消息接收者Receiver,使用注解@RabbitListener(queues = “message”)来监听message的消息队列@RabbitHandler来实现具体消费。

package com.dalaoyang.receiver;

import org.apache.log4j.Logger;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;

import java.util.Date;


@Component
@RabbitListener(queues = "message")
public class Receiver {
    Logger logger = Logger.getLogger(Receiver.class);

    @RabbitHandler
    public void process(String Str) {
        logger.info("接收消息:"+Str);
        logger.info("接收消息时间:"+new Date());
    }
}

然后看一下配置信息,因为是简单整合,所以只配置了端口和rabbitmq的信息,如下:

##端口号
server.port=8888

##rabbitmq
spring.rabbitmq.host=localhost
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest

创建一个controller,这里仅用来测试,代码如下:

package com.dalaoyang.controller;

import com.dalaoyang.sender.Sender;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
public class TestController {

    @Autowired
    private Sender sender;

    @GetMapping("hello")
    public String helloTest(){
        sender.send();
        return "success";
    }

}

启动项目,访问http://localhost:8888/hello然后观看控制台可以看到消息已经发送成功。

源码下载 :大老杨码云


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/234911.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号