rabbitmq使用_Spring @Configuration – RabbitMQ连接

rabbitmq使用

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 {

 @Autowired
 private ConnectionFactory rabbitConnectionFactory;

 @Bean
 DirectExchange rubeExchange() {
  return new DirectExchange("rmq.rube.exchange", true, false);
 }

 @Bean
 public Queue rubeQueue() {
  return new Queue("rmq.rube.queue", true);
 }

 @Bean
 Binding rubeExchangeBinding(DirectExchange rubeExchange, Queue rubeQueue) {
  return BindingBuilder.bind(rubeQueue).to(rubeExchange).with("rube.key");
 }

 @Bean
 public 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

参考文献:

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

rabbitmq使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值