Spring @Configuration – RabbitMQ连接

我一直在转换必须使用Spring @Configuration机制配置到RabbitMQ的连接的应用程序-最初,我使用xml bean定义文件来描述配置。

这是我的原始配置:

<beans ...;><context:property-placeholder/><rabbit:connection-factory id="rabbitConnectionFactory" username="${rabbit.user}" host="localhost" password="${rabbit.pass}" port="5672"/><rabbit:template id="amqpTemplate"connection-factory="rabbitConnectionFactory"exchange="rmq.rube.exchange"routing-key="rube.key"channel-transacted="true"/><rabbit:queue name="rmq.rube.queue" durable="true"/><rabbit:direct-exchange name="rmq.rube.exchange" durable="true"><rabbit:bindings><rabbit:binding queue="rmq.rube.queue" key="rube.key"></rabbit:binding></rabbit:bindings></rabbit:direct-exchange></beans>

这是一个相当简单的配置:

  • 建立与RabbitMQ服务器的连接,
  • 创建一个持久队列(如果不可用)
  • 创造持久的交流
  • 并配置一个绑定,以基于称为“ rube.key”的路由键将消息发送到交换机以路由到队列

可以将其转换为以下基于@Configuration的java配置:

@Configuration
public class RabbitConfig {@Autowiredprivate ConnectionFactory rabbitConnectionFactory;@BeanDirectExchange rubeExchange() {return new DirectExchange("rmq.rube.exchange", true, false);}@Beanpublic Queue rubeQueue() {return new Queue("rmq.rube.queue", true);}@BeanBinding rubeExchangeBinding(DirectExchange rubeExchange, Queue rubeQueue) {return BindingBuilder.bind(rubeQueue).to(rubeExchange).with("rube.key");}@Beanpublic RabbitTemplate rubeExchangeTemplate() {RabbitTemplate r = new RabbitTemplate(rabbitConnectionFactory);r.setExchange("rmq.rube.exchange");r.setRoutingKey("rube.key");r.setConnectionFactory(rabbitConnectionFactory);return r;}
}

该配置看起来比配置的xml版本要简单得多。 不过我在这里有点作弊,您应该会看到缺少的connectionFactory,它只是被注入到此配置中,它是从哪里来的。这实际上是基于Spring Boot的应用程序的一部分,并且有一个Spring Boot Auto配置用于RabbitMQ connectionFactory基于在类路径中是否存在RabbitMQ相关库。

如果您有兴趣进一步探索,这里是完整的配置– https://github.com/bijukunjummen/rg-si-rabbit/blob/master/src/main/java/rube/config/RabbitConfig.java

参考文献:

  • Spring-AMQP项目在这里
  • 这里使用RabbitMQ的Spring-Boot入门项目

翻译自: https://www.javacodegeeks.com/2014/10/spring-configuration-rabbitmq-connectivity.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/361782.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大叔手记(12):我的一次面试经历(谈大叔如何应对面试官)

本文目的 写本文的目的&#xff0c;大叔不是为了装逼&#xff08;虽然说话的口气有时候也确实有点装逼&#xff0c;性格导致的&#xff0c;咳。。。我得改&#xff09;&#xff0c;其实大叔在公司也只是小罗罗&#xff0c;本文的目的主要是为了向大家展示如何通过各种软技能应对…

欧拉回路判断规则

无向图&#xff1a;因为欧拉路径中&#xff0c;除了起点与终点以外&#xff0c;任意点的“进”“出”次数相等&#xff0c;所以除了两个点为奇点&#xff08;度数为奇数的点&#xff09;&#xff08;终点和起点&#xff09;以外&#xff0c;其它点的度数均为偶数。 如果是欧拉回…

使用Apache Camel 2.14的轻松REST端点

Apache Camel 最近发布了一个新版本 &#xff0c; 其中一些新功能由我的同事Claus Ibsen博客发布 。 您确实应该检查他的博客条目并深入研究更多细节&#xff0c;但是我希望尝试的功能之一是新的REST DSL 。 那么&#xff0c;这是什么新的DSL&#xff1f; 实际上&#xff0c;…

认识Mahout下的云计算机器学习

认识Mahout下的云计算机器学习 Apache Mahout 是 ApacheSoftware Foundation (ASF) 旗下的一个开源项目&#xff0c;提供一些可扩展的机器学习领域经典算法的实现&#xff0c;旨在帮助开发人员更加方便快捷地创建智能应用程序&#xff0c;并且&#xff0c;在 Mahout 的最近版本…

xshell常用的命令

Xshell查看所有的进程&#xff1a;ps -ef|grep tomcat查询该目录下所有的项目&#xff1a;lsXshell查看所有的zookeeper进程&#xff1a;ps -ef|grep zoo 进入到bin目录下 然后启动&#xff1a;./zkServer.sh startchmod命令大全及其解释 https://jingyan.baidu.com/article/5d…

NetBeans 8.0的五个新性能提示

NetBeans 8.0引入了几个新的Java提示 。 尽管有许多与Java Persistence API相关的新提示&#xff0c;但我还是关注Performance类别中的五个新提示。 NetBeans 8.0引入的五个新的“性能提示”是&#xff1a; 已装箱价值的装箱 冗余String.toString&#xff08;&#xff09; …

centos找不到IFCONFIG命令

# ifconfig  提示命令不存在  使用 # /sbin/ifconfig 即可  原因&#xff1a; 系统默认的环境变量设置不对  在 普通用户 和root用户下分别执行echo $PATH&#xff0c;PATH里少了四个地址&#xff1a;/sbin:/usr/sbin:/usr/local/sbin:/usr/kerberos/sbin  而&#x…

机智云小程序启蒙:WebSocket网页控制

机智云小程序启蒙&#xff1a;WebSocket网页控制 机智云Web版的JS远程控制设备&#xff0c;是调用了机智云开放的Open API和WebSocket API来实现的。这个是设计小程序最好的基础&#xff0c;也可以使无安卓设备的用户用网页远程控制设备。 其中&#xff0c;Open API用到的接口…

js 数据类型判断

判断type类型 isString (o) { //是否字符串return Object.prototype.toString.call(o).slice(8, -1) String }isNumber (o) { //是否数字return Object.prototype.toString.call(o).slice(8, -1) Number }isBoolean (o) { //是否booleanreturn Object.prototype.toString.cal…

Maven排除所有传递依赖项

“ 传递依赖项是Maven 2.0中的新功能。 这样一来&#xff0c;您就可以避免发现和指定自己的依赖项所需的库&#xff0c;并自动将它们包括在内。” 我遇到了一个问题&#xff0c;其中一些依赖项在运行时可用&#xff0c;但在公共关系存储库中不可用。 例如&#xff0c;Hibernate…

Web service 超过了最大请求长度错误解决

Web service 超过了最大请求长度错误解决 System.Web.Services.Protocols.SoapException: 运行配置文件中指定的扩展时出现异常。 ---> System.Web.HttpException: 超过了最大请求长度。 在 System.Web.HttpRequest.GetEntireRawContent() 在 System.Web.HttpRequest.ge…

Hibernate关联映射(一对多/多对多)

版权声明&#xff1a;翀版 https://blog.csdn.net/biggerchong/article/details/843401053. Hibernate关联映射上接Hibernate持久化类&#xff1a;https://blog.csdn.net/biggerchong/article/details/84260707 目录3. Hibernate关联映射 3.1 数据库表之间的关系 3.1.1 一对多…

微信小程序适配iphonex

// 在app.js中判断是否是哪种设备 globalData: { isIphoneX: false, userInfo: null }, onShow:function(){ let that this; wx.getSystemInfo({ success: res>{ // console.log(手机信息res res.model) let modelmes res.model; if (modelmes.search(iPho…

Java Minor发布计划再次进行了调整

2013年&#xff0c;Oracle宣布了Java SE –版本编号方案更改 。 该公告指出&#xff0c;将使用特定的版本号方案来发行受限更新版本&#xff08;那些“包括新功能和非安全修复程序”&#xff09;和关键补丁更新&#xff08;CPU&#xff09;“那些仅包含安全漏洞修复程序”。 特…

asp.net服务器端跳转页面的三种方法

asp.net服务器端跳转页面的三种方法1、Response.Redirect这个跳转页面的方法跳转速度不快&#xff0c;因为它要走2次回发(postback)。 它可以跳转到任何页面&#xff0c;没有站点页面限制(可以由baidu跳转到google)&#xff0c;但不能跳过登录保护。 速度慢是其最大缺陷&#x…

动态规划--图像压缩

<算法设计与分析> --王晓东 题目描述和解析参照&#xff1a;http://blog.csdn.net/liufeng_king/article/details/8648195 他在那里分析得非常的详细。我也是按照这种思路来解的&#xff0c;而且算法设计与实现的课件上也是这么个解法。 主要是理解这个公式&#xff0c;…

如何安全使用SWT的显示器asyncExec

大多数用户界面&#xff08;UI&#xff09;工具包都是单线程的&#xff0c; SWT也不例外。 这意味着必须仅从单个线程&#xff08;即所谓的UI线程&#xff09;访问UI对象。 另一方面&#xff0c;应在后台线程中执行长时间运行的任务&#xff0c;以使UI保持响应。 这使得后台线程…

解决添加Com引用 生成的Interop.*.dll 版本号永远是1.0的问题

在项目里面&#xff0c;添加对COM的引用时&#xff0c;自动生成了Interop.*.dll&#xff0c;但是这个dll的版本号永远是1.0. 如果使用InstallShield 制作安装包&#xff0c;进行修改安装时&#xff0c;这个dll不会被更新&#xff0c;就因为版本号永远是1.0 想修改这个版本号&am…

web页面全角半角

根据Unicode编码&#xff0c;全角空格为12288&#xff0c;半角空格为32 &#xff1b; 其他字符半角(33-126)与全角(65281-65374)的对应关系是&#xff1a;均相差65248 全角-->半角函数 //半角转换为全角函数 function ToBCD(str) { var tmp ""; for(var i0;…

Cannot find module '@babel/plugin-proposal-class-properties'

cnpm install --save-dev babel/plugin-proposal-class-properties转载于:https://www.cnblogs.com/qq917937712/p/11226922.html