# rabbitmq 根据配置文件动态创建队列和绑定
### 配置示例
```yml
spring:
rabbitmq:
# ip
host: 192.168.200.31
# 端口
port: 5672
# 用户名
username: medway
# 密码
password: medway
medway:
platform:
rabbitmq:
# 组件信息
rabbit-infos:
# 路由主键
- routing-key: web.socket.test
# 队列信息
queue:
# 队列名称
name: web.queue.test
# 交换机信息
exchange:
# 交换机名称
name: web.exchange.test
# 交换机类型 默认 广播模式
type: FANOUT
```
```java
public enum ExchangeTypeEnum {
DIRECT("1", "直连模式"),
FANOUT("2", "广播模式"),
TOPIC("3", "通配符模式"),
HEADERS("4", "参数模式");
private String code;
private String name;
}
```
#### 代码示例
```java
// 发送消息
@SpringBootTest
@Slf4j
public class RabbitmqTest {
@Autowired
private RabbitTemplate rabbitTemplate;
@Autowired
private RabbitProperties rabbitProperties;
@Test
public void sendMessageTest() {
RabbitInfo rabbitInfo = rabbitProperties.getRabbitInfos().get(0);
String message = rabbitInfo.getQueue().getName() + " ---> 发送消息";
// convertAndSend 三个参数分别是 交换机名称、路由主键、消息内容
rabbitTemplate.convertAndSend(rabbitInfo.getExchange().getName(), rabbitInfo.getRoutingKey(), message);
log.info("sendMessageTest 发送消息的内容 {} " + message);
}
}
// 接收消息
@SpringBootTest
@Component
@Slf4j
public class RabbitMessageTest {
private static final String QUEUE_NAME = "web.queue.test";
@Test
// queues 队列名称, 多线程监听消息: containerFactory = "batchQueueRabbitListenerContainerFactory"
@RabbitListener(queues = QUEUE_NAME, containerFactory = "batchQueueRabbitListenerContainerFactory")
public void receiveMessageTest(String message) {
log.info("receiveMessageTest 接收消息的内容 {} " + message);
}
}
```
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
RabbitMQ.zip (75个子文件)
medway-starter-rabbitmq
pom.xml 1KB
src
test
resources
application.yaml 2KB
java
cloud
medway
platform
rabbitmq
TestApplication.java 473B
test
DLXQueueTest.java 3KB
headersTest.java 2KB
MessageRepeatTest.java 4KB
RabbitmqTest.java 1KB
RabbitMessageTest.java 2KB
fanoutTest.java 2KB
topicTest.java 2KB
directTest.java 1KB
TTLExpiredTest.java 2KB
ConfirmMessageTest.java 5KB
config
RabbitConfirmConfig.java 2KB
main
resources
spring.factories 129B
java
cloud
medway
platform
rabbitmq
props
RabbitInfo.java 3KB
RabbitProperties.java 1KB
common
enums
ExchangeTypeEnum.java 525B
rabbit
DeclareRabbit.java 7KB
config
RabbitAutoConfiguration.java 613B
RabbitConfig.java 2KB
.idea
jarRepositories.xml 864B
uiDesigner.xml 9KB
vcs.xml 191B
workspace.xml 9KB
misc.xml 482B
compiler.xml 824B
checkstyle-idea.xml 632B
.gitignore 184B
sonarlint
issuestore
d
d
dd4e8a420ccd2a91ee05ca6bfaf9f58a8f3396fc 0B
dd0bbf79c73637c9e607c620bbd61ceab543cada 312B
0
8
083e7516747d824fe5f30623c60495f50c6c91d9 0B
9
09be84ef2f38c4d186f078a03569beaf4f83d237 0B
8
e
8ec9a00bfd09b3190ac6b22251dbb1aa95a0579d 0B
8e68570d9f8e82187ca2d12fb03ca6788a693a3e 361B
4
84fd158e3baabb9eec6b319467f7173fcba89ef9 360B
c
d
cd9c9ed7013c02bfef57e7d3155a4e73b6fbc4c0 0B
index.pb 2KB
a
2
a287d719555b487dd45e0d2fba86845dc9270492 0B
1
6
1683d3bf703a8a1c9352644e9e2571884caa973d 65B
2
9
29a137df4c5528b3e644871e3142b1147eee3dca 60B
f
c
fc56fa931878dad8428870b2ed223e6a88d345d4 0B
5
b
5b0a4f3033c32459e26e11cc844bbc47c2f234bb 118B
4
4
7
8
780ebbc92b380b97294cb8b7cf3fabeb6d811370 0B
7871e59017703409e457fbae9472e0f047ec65cf 237B
a
3
7333d33f4ee0d7f5df399f083aef72255665fddd 0B
b
f
bf0d38cd9feba9eea70bbbd016c2adf93c14a7ce 351B
3
b3b1b4d99f2022ce02e1a53cb37dfef09e849f3f 472B
3
c
encodings.xml 191B
target
classes
cloud
medway
platform
rabbitmq
props
RabbitInfo$Exchange.class 4KB
RabbitProperties.class 5KB
RabbitInfo$Queue.class 4KB
RabbitInfo.class 3KB
common
enums
ExchangeTypeEnum.class 2KB
rabbit
DeclareRabbit.class 8KB
DeclareRabbit$1.class 967B
config
RabbitConfig.class 3KB
RabbitAutoConfiguration.class 740B
spring.factories 129B
META-INF
spring-configuration-metadata.json 1KB
test-classes
cloud
medway
platform
rabbitmq
TestApplication.class 828B
test
topicTest$1.class 1KB
MessageRepeatTest.class 5KB
RabbitMessageTest.class 2KB
directTest.class 1KB
headersTest.class 2KB
fanoutTest.class 888B
ConfirmMessageTest.class 3KB
DLXQueueTest.class 3KB
topicTest.class 2KB
RabbitmqTest.class 2KB
TTLExpiredTest.class 2KB
config
RabbitConfirmConfig.class 3KB
application.yaml 2KB
generated-test-sources
test-annotations
generated-sources
annotations
README.md 2KB
共 75 条
- 1
资源评论
- 芊暖2023-07-25:这篇文章提供了一个实用的工具类,可以帮助用户在RabbitMQ中动态创建队列和绑定。值得一读。
- 蒋寻2023-07-25:这个工具类为配置文件的动态创建队列和绑定提供了一个简单的解决方案,让代码逻辑更清晰。
- 断脚的鸟2023-07-25:作者详细介绍了如何使用该工具类,对于不熟悉RabbitMQ的人来说,非常有帮助。
- 伯特兰·罗卜2023-07-25:尽管这篇文章有一些提升的空间,但它为RabbitMQ配置文件动态创建队列和绑定提供了一种可行的方法。
- 文润观书2023-07-25:作者在文章中提供了示例代码,方便读者理解并实际应用,不错的思路。
大大的男孩
- 粉丝: 7
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功