springcloudstream4.0.3 用rabbitmq实现消息收发,请给出案例
时间: 2024-02-22 09:00:07 浏览: 26
好的,以下是使用Spring Cloud Stream 4.0.3和RabbitMQ实现消息发送和接收的示例:
首先,需要在项目中添加Spring Cloud Stream和RabbitMQ的依赖:
```xml
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-binder-rabbit</artifactId>
<version>3.1.4</version>
</dependency>
```
接下来,在application.yml文件中配置RabbitMQ连接信息:
```yaml
spring:
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
```
定义消息发送和接收的接口:
```java
public interface MessageChannels {
String OUTPUT = "output";
@Output(OUTPUT)
MessageChannel output();
}
public interface MessageHandlers {
String INPUT = "input";
@Input(INPUT)
SubscribableChannel input();
}
```
在需要发送消息的地方注入MessageChannels接口,并使用output()方法发送消息:
```java
@Autowired
private MessageChannels messageChannels;
public void sendMessage(String message) {
messageChannels.output().send(MessageBuilder.withPayload(message).build());
}
```
在需要接收消息的地方注入MessageHandlers接口,并使用@StreamListener注解监听消息:
```java
import org.springframework.cloud.stream.annotation.StreamListener;
import org.springframework.stereotype.Component;
@Component
public class MessageReceiver {
@StreamListener(MessageHandlers.INPUT)
public void handleMessage(String message) {
System.out.println("Received message: " + message);
}
}
```
这样就完成了使用Spring Cloud Stream和RabbitMQ实现消息发送和接收的示例。