当前位置: 首页 > 编程日记 > 正文

springboot-26-springboot 集成rabbitmq

rabbitmq是基于AMQP规范的一个消息代理, 它可以兼容jms, 支持其他语言, 并且可以跨平台

1, 安装

1) 普通安装

度娘:

2) docker 安装

sudo docker run -d -p 5672:5672 -p 15672:15672 rabbitmq:3-management

安装成功后:  使用 guest/guest 用户登录

2 使用:

1) 添加 rabbitmq的依赖

        <!--添加 rabbitmq的依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency>

2), 添加配置, 默认的配置为 localhost: 5672

########### rabbitmq 的配置 ******
spring: rabbitmq:host: 192.168.50.202port: 5672
#    username: admin
#    password: secret

3), 生产者:

package com.wenbronk.enterprise.rabbitmq.send;import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;/*** 消息发送者* 实现接口, 为了开机就自动发送* Created by wenbronk on 2017/6/13.*/
@Component
public class RabbitMQSender implements CommandLineRunner{@Autowiredprivate RabbitTemplate rabbitTemplate;@Overridepublic void run(String... args) throws Exception {rabbitTemplate.convertAndSend("my-queue", "来自rabiitmq的问候");}
}

4) 消费者:

package com.wenbronk.enterprise.rabbitmq.receive;import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;/*** 消息接收者* Created by wenbronk on 2017/6/13.*/
@Component
public class RabbitMQReceive {/*** 使用rabbitlistener接收消息* @param message*/@RabbitListener(queues = "my-queue")public void receiveMessage(String message) {System.out.println("receive: " + message);}}

5) ,使用队列模式:

package com.wenbronk.enterprise.rabbitmq.config;import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** 队列模式的bean* Created by wenbronk on 2017/6/13.*/
@Configuration
public class QueueConfig {/*** 定义使用到的队列* @return*/@Beanpublic Queue myQueue() {return new Queue("my-queue");}
}

启动后, 就会自动发送消息

另外, 有看到过这个异常且无限循环的, 可以试下

org.springframework.amqp.AmqpException: No method found for class

https://jira.spring.io/browse/AMQP-573

  @Beanpublic RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) {RabbitTemplate template = new RabbitTemplate(connectionFactory);template.setMessageConverter(new Jackson2JsonMessageConverter());return template;}@Beanpublic SimpleRabbitListenerContainerFactory rabbitListenerContainerFactory(ConnectionFactory connectionFactory) {SimpleRabbitListenerContainerFactory factory = new SimpleRabbitListenerContainerFactory();factory.setConnectionFactory(connectionFactory);factory.setMessageConverter(new Jackson2JsonMessageConverter());return factory;}

调用:

@RabbitListener(queues = "merchant", containerFactory="rabbitListenerContainerFactory")
public void process(@Payload UpdateMerchant request) { UpdateMerchantResponse response = new UpdateMerchantResponse();logger.info(request.getMerchantId() + "->" + response.getReturnCode());}

相关文章:

asp.net中的联动菜单

目标达到的效果&#xff1a;两个下拉框&#xff0c;第二个跟随第一个变化而变化&#xff0c;使用客户端脚本JavaScript在ASP.NET环境下实现。 第一步&#xff1a;建立JavaScript脚本&#xff1a; 在Page_Load中建立并注册这个js脚本&#xff1a; string scriptKey "Menu…

2020长沙“科技之星”榜单重磅揭晓,近百家企业凭实力“出道”!

今天&#xff0c;「INFLUENCE长沙 2020年度“科技之星”企业评选」&#xff08;下文统称「长沙科技之星」&#xff09;圆满收官&#xff0c;评选结果正式揭晓&#xff01;作为专业的 IT 社区&#xff0c;CSDN 多年来与千万技术人员、技术企业共同见证了产业的发展和时代的变更…

CENTOS6.4 IBUS输入法不显示候选词解决办法

IBUS输入法 不显示候选词原因分析&#xff1a;输入im-chooser时候&#xff0c;显示找不到gtk模块&#xff1b;原因为升级python后的版本&#xff0c;不能导入gtk。找到能够导入gtk版本的python,然后默认python设置为此版本。故障解决&#xff1a;删除或更改默认python版本# whi…

sql server 表索引碎片处理

DBCC SHOWCONTIG (Transact-SQL) SQL Server 2005 其他版本更新日期&#xff1a; 2007 年 9 月 15 日 显示指定的表或视图的数据和索引的碎片信息。 重要提示&#xff1a;后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能&#xff0c;并着手修…

ASP.NET2.0 GridView小技巧汇粹

1)GridView绑定数据源控件,需要有编辑和删除选项按钮时,数据源控件必须提供SQL操作语句或存储过程调用,一般,我的推荐做法是,使用无意义的SQL语句或存储过程来使GridView的编辑和删除按钮可以生成,具体的编辑更新和删除操作在代码运行时而不是在控件设计时指定,虽然多写了一点代…

树莓派出微控制器了!Raspberry Pi Pico 只需 4 美元

整理 | 郑丽媛来源 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;昨天&#xff0c;树莓派搞了个大动作&#xff1a;推出了首款微控制器开发板 Raspberry Pi Pico&#xff01;该开发板基于树莓派开发的全新芯片——RP2040&#xff0c;并且作为双核 Arm Cortex-M0 的它…

“chaos”的算法--之链表面试题

【 声明&#xff1a;版权所有&#xff0c;欢迎转载。 联系信箱&#xff1a;yiluohuanghungmail.com】前两天倩仔仔给我了一套试题让我看&#xff0c;整体来说感觉题都还算不错&#xff0c;从中随便找了两道。先看题吧&#xff01;1、怎样判断一个单链表中是都存在环路&#xff…

ABP官方文档翻译 6.1.2 MVC视图

ASP.NET MVC 视图 介绍AbpWebViewPage基类介绍 ABP通过Abp.Web.Mvc nuget包集成到MVC视图。你可以如往常一样创建正常的MVC视图。 AbpWebViewPage基类 ABP提供了AbpWebViewPage&#xff0c;它定义了一些有用的属性和方法。如果你使用启动模板创建的工程&#xff0c;那么你所有的…

ASP.NET 打开新窗口几种方法

ASP.NET打开新窗口方法一:Response.Write("<script language/"javascript/">window.open(aaa.aspx,新窗口,/"toolbaryes,locationno,directoriesyes,statusyes,menubaryes,resizableyes,scrollbarsyes/");</script>");这种方式代码每…

Hibernate的使用梳理

Hibernate创建步骤 &#xff08;五大核心接口&#xff1a;Configuration/SessionFactory/Session/Transaction/Query&#xff09; 1.新建java工程&#xff0c;导入需要的jar包。 2.创建hibernate.cfg.xml配置文件和Test.java工具类。配置好相应的实体对象User.java User.hbm.x…

驭势科技引入国家队战略注资,完成超10亿元人民币融资

2021年1月25日&#xff0c;驭势科技&#xff08;UISEE&#xff09;宣布完成累计金额超10亿元人民币的新一轮融资&#xff0c;并获得国开制造业转型升级基金的战略注资。这是国开制造业转型升级基金在自动驾驶领域的首笔投资。2019年11月&#xff0c;国家制造业转型升级基金股份…

[Python爬虫] 之二十二:Selenium +phantomjs 利用 pyquery抓取界面网站数据

一、介绍 本例子用Selenium phantomjs爬取界面&#xff08;https://a.jiemian.com/index.php?msearch&aindex&typenews&msg电视&#xff09;的资讯信息&#xff0c;输入给定关键字抓取资讯信息。 给定关键字&#xff1a;数字&#xff1b;融合&#xff1b;电视 抓取…

android高级编程-android高级应用

android高级应用>>>第一阶段程序员基本素质养成程序员所需要具备的12条职业素质让学员初步了解和审视自己所应该具备的职业素质。并且我们会在授课中随时训练和贯彻这样的素质&#xff0c;最终把大家捏成专业的职业的程序员。迭发各个环节及工具初步介绍总概性的讲解一…

asp.net三种重定向方法的总结

(1)Server.Transfer方法: Server.Transfer("m2.aspx");//页面转向(服务器上执行). 服务器停止解析本页,保存此页转向前的数据后,再使页面转向到m2.aspx, 并将转向前数据加上m2.aspx页结果返回给浏览器. (2)Server.Execute方法: Server.Execute("m2.aspx"…

区区几行Python代码,一分钟搞定一天工作量

作者 | 陈熹、刘早起来源 | 早起Python大家好&#xff0c;我是早起。前几天有一个读者说最近要整理几千份文件&#xff0c;头都要整秃了&#xff0c;不知道能不能用Python解决&#xff0c;我们来看一下&#xff0c;你也可以思考一下。由于涉及文件私密所以具体内容已做脱敏处理…

bc计算命令的知识及企业计算案例

bc命令的用法&#xff1a;bc是unix下的计算器&#xff0c;它也可以用在命令行下面&#xff1a;例&#xff1a;给自变量i加1i2iecho $i1|bc -----效率低#因为bc支持科学计算&#xff0c;所以这种方法功能非常强大[rootXCN ~]# echo 11|bc 2 [rootXCN ~]# echo 1*1|bc 1 […

ExecutorService与Executors例子的简单剖析(转)

对于多线程有了一点了解之后&#xff0c;那么来看看java.lang.concurrent包下面的一些东西。在此之前&#xff0c;我们运行一个线程都是显式调用了 Thread的start()方法。我们用concurrent下面的类来实现一下线程的运行&#xff0c;而且这将成为以后常用的方法或者实现思路。 …

GridView隐藏列取值解决方案

【摘要】 在Asp.net 2.0中增加了一个新的数据绑定控件&#xff1a;GridView&#xff0c;其目的用来取代Asp.net1.x中的DataGrid控件&#xff0c;但有一点很不爽的是&#xff0c;如果把某列设置为visiblefalse&#xff0c;则不会进行数据绑定&#xff0c;也就是说无法直接从Grid…

百度飞桨成为北京市首个AI产业方向创新应用平台

1月20日&#xff0c;北京市经济和信息化局正式授予百度公司"北京市人工智能产业创新应用平台&#xff08;百度飞桨&#xff09;"。当前&#xff0c;北京市正在创建国家人工智能创新应用先导区&#xff0c;人工智能作为新科技革命和产业变革前沿领域&#xff0c;是北京…

FTP的20、21端口,工作模式

什么是FTP? FTP就是文件传输协议 File Transfer Protocol 的缩写. FTP端口号是多少? 21 FTP的端口号能改吗? 能 ftp的端口号20、21有何区别? 一个是数据端口&#xff0c;一个是控制端口&#xff0c;控制端口一般为21&#xff0c;而数据端口不一定是20&#xff0c;这和FTP的…

android 自定义ViewGroup和对view进行切图动画实现滑动菜单SlidingMenu[转]

http://blog.csdn.net/jj120522/article/details/8095852 示意图就不展示了&#xff0c;和上一节的一样,滑动菜单SlidingMenu效果如何大家都比较熟悉&#xff0c;在这里我简单说明一下用自定义ViewGroup来实现. 实现方法&#xff1a;我们自定义一个ViewGroup实现左右滑动&#…

物联网下的数据传输,Python 就能搞定!

作者 | 李秋键责编 | 夕颜出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;引言&#xff1a;近几年来&#xff0c;谈起发展最火热的几个关键词必然是人工智能、大数据以及物联网的万物互联、边缘计算等等了。而今天&#xff0c;我们就将利用Python实现物联网下的数据传…

ASP.NET 2.0中Page事件的执行顺序

Page 执行中将按照如下顺序激活事件&#xff1a;Page.PreInitPage.InitPage.InitComplitePage.PreLoadPage.LoadPage.LoadCompletePage.PreRenderPage.PreRenderComplete如果页面从令一个页面继承&#xff0c;如BasePage:System.Web.UI.Page&#xff0c;在BasePage中做了一些扩…

javascript函数嵌套时arguments的问题

疑问&#xff1a; var funtest function () {var fun function (val, val2) {alert(arguments.length); //此处答案&#xff1f; 有些人回答是2&#xff0c;但是正确是 0 };setTimeout(fun, 20);};funtest(); 转载于:https://www.cnblogs.com/huaan011/p/7073792.html

禁用页面缓存的几种方法(静态和动态)

1、在Asp页面首部<head>加入 Response.Buffer True Response.ExpiresAbsolute Now() - 1 Response.Expires 0 Response.CacheControl "no-cache" Response.AddHeader "Pragma", "No-Cache&…

程序员转型AI,成功几率有几分?

技术转型&#xff0c;这两年一直是程序员圈子里的热门话题。对于大部分基层程序员来说&#xff0c;基础岗位上薪资的涨幅很难跟上年龄的增长。而近些年&#xff0c;AI技术发展势头迅猛&#xff0c;优秀人才短缺&#xff0c;这种情况下&#xff0c;无疑是谁先转型&#xff0c;谁…

利用反射实现类的动态加载

为什么80%的码农都做不了架构师&#xff1f;>>> //首先定义一个接口来隔离类&#xff1a; public interface Operator { // public java.util.List act(java.util.List params);public java.util.List act(String content,String content2,java.util.List param…

spring+ (activeMQ) 实现queue与topic

2019独角兽企业重金招聘Python工程师标准>>> 2017-06-17 1、activeMQ下载与安装 前往Apache官网下载ActiveMQ&#xff0c;下载地址http://activemq.apache.org/download.html&#xff08;此处我下载了apache-activemq-5.9.0 版本的tar包&#xff09;解压&#xff1a…

C#文本文件操作

如何向现有文件中添加文本using System;using System.IO;class Test {public static void Main() {// Create an instance of StreamWriter to write text to a file.// The using statement also closes the StreamWriter.using (StreamWriter sw new StreamWriter("Tes…

RISC-V 正在成为芯片世界中的 Linux

【编者按】芯片推动了人类社会数字化、信息化、智能化的发展。从某种程度上来说&#xff0c;芯片技术的发展也影响着行业未来的走向。你觉得未来的芯片世界将会如何&#xff1f;编译 | 虎说八道 责编 | 张文头图 | CSDN 下载自视觉中国出品 | CSDN&#xff08;ID&#xff1a;C…