使用ExchangeBuilder和直接new的区别
时间: 2024-04-17 09:23:29 浏览: 14
ExchangeBuilder 是 CSDN 开发的一个工具类,用于构建交易所对象。它提供了一种链式调用的方式来设置交易所的属性,并最终构建出一个完整的交易所对象。
相比于直接使用 new 关键字来创建交易所对象,使用 ExchangeBuilder 有以下几个优势:
1. 链式调用:ExchangeBuilder 使用了 Builder 模式,可以通过链式调用一步步设置交易所的属性,使代码更加清晰、易读。
2. 可选参数:ExchangeBuilder 提供了一些可选参数,可以根据实际需求选择性地设置交易所的属性,而不需要为每个参数都提供一个对应的构造函数。
3. 面向对象:ExchangeBuilder 的设计符合面向对象的原则,将构建过程封装在一个独立的类中,使得代码结构更加清晰,易于维护和扩展。
总的来说,使用 ExchangeBuilder 可以更加方便地创建和配置交易所对象,提高代码的可读性和可维护性。而直接使用 new 关键字创建对象则相对简单直接,适用于只有少量参数且不需要灵活配置的情况。
相关问题
ExchangeBuilder.directExchange()
ExchangeBuilder.directExchange()是用于创建Direct类型的Exchange的方法。
在RabbitMQ中,Exchange是消息的路由中心,用于将消息路由到一个或多个Queue中。Direct Exchange是一种最简单的Exchange类型,它会将消息路由到与Routing Key完全匹配的Queue中。
ExchangeBuilder.directExchange()方法会创建一个Direct类型的Exchange,并返回ExchangeBuilder对象,可以通过该对象设置Exchange的属性,例如Exchange的名称、持久化等。最后,可以通过ExchangeBuilder.build()方法构建出Exchange对象,并将其纳入到RabbitMQ中进行管理。
以下是一个示例:
```
@Bean
public DirectExchange directExchange() {
return ExchangeBuilder.directExchange("direct.exchange")
.durable(true)
.build();
}
```
这个示例中创建了一个名为"direct.exchange"的Direct类型的Exchange,并设置了持久化属性为true。最后,通过build()方法构建出Exchange对象,并将其纳入到RabbitMQ中进行管理。
springboot使用rabbitmq怎么绑定交换机的类型
在Spring Boot中使用RabbitMQ绑定交换机的类型可以通过以下步骤进行:
1. 创建一个Exchange声明类,通过注解@Exchange声明交换机,指定交换机名称、类型、是否持久化等属性。
```java
@Configuration
public class ExchangeConfig {
@Bean
public Exchange directExchange() {
return ExchangeBuilder.directExchange("direct.exchange")
.durable(true)
.build();
}
@Bean
public Exchange fanoutExchange() {
return ExchangeBuilder.fanoutExchange("fanout.exchange")
.durable(true)
.build();
}
@Bean
public Exchange topicExchange() {
return ExchangeBuilder.topicExchange("topic.exchange")
.durable(true)
.build();
}
@Bean
public Exchange headersExchange() {
return ExchangeBuilder.headersExchange("header.exchange")
.durable(true)
.build();
}
}
```
2. 在RabbitMQ配置文件中配置交换机绑定关系,将Exchange声明类中定义的交换机与队列进行绑定。
```yaml
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
virtual-host: /
listener:
simple:
acknowledge-mode: manual
template:
mandatory: true
publisher-returns: true
publisher-confirm-type: correlated
listener:
simple:
default-requeue-rejected: false
bindings:
direct-binding:
destination: direct.queue
exchange: direct.exchange
routing-key: direct
fanout-binding:
destination: fanout.queue
exchange: fanout.exchange
topic-binding:
destination: topic.queue
exchange: topic.exchange
routing-key: topic.*
headers-binding:
destination: headers.queue
exchange: header.exchange
headers:
key: value
```
在以上配置中,我们定义了四个交换机类型并分别绑定了队列,其中direct-binding使用了routing-key,topic-binding使用了通配符*,headers-binding使用了headers参数。
这样,在Spring Boot应用中就可以使用RabbitMQ进行消息的发送和接收了。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pptx](https://img-home.csdnimg.cn/images/20210720083543.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)