spring cloud stream rocketmq 接口不同的消息
时间: 2023-08-28 22:06:24 浏览: 103
Spring Cloud Stream RocketMQ 支持多种消息类型的接口,包括字符串、字节数组、JSON、Java对象等。您可以根据您的需求选择适合的消息类型进行消息传输。
以下是 Spring Cloud Stream RocketMQ 支持的消息类型及其接口:
1. 字符串类型消息
发送字符串类型消息时,可以使用 `MessageChannel` 接口的 `send` 方法,例如:
```java
public interface MySource {
@Output("output")
MessageChannel output();
}
@Autowired
private MySource source;
source.output().send(MessageBuilder.withPayload("hello").build());
```
2. 字节数组类型消息
发送字节数组类型消息时,也可以使用 `MessageChannel` 接口的 `send` 方法,例如:
```java
public interface MySource {
@Output("output")
MessageChannel output();
}
@Autowired
private MySource source;
source.output().send(MessageBuilder.withPayload("hello".getBytes()).build());
```
3. JSON 类型消息
发送 JSON 类型消息时,可以使用 `@Payload` 注解,并指定消息类型,例如:
```java
public interface MySource {
@Output("output")
MessageChannel output();
@Output("output-json")
MessageChannel outputJson();
}
@Autowired
private MySource source;
source.outputJson().send(MessageBuilder.withPayload(new Foo("bar")).setHeader(MessageHeaders.CONTENT_TYPE, MimeTypeUtils.APPLICATION_JSON).build());
public static class Foo {
private String value;
public Foo(String value) {
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
```
4. Java 对象类型消息
发送 Java 对象类型消息时,可以使用 `@Payload` 注解,并指定消息类型,例如:
```java
public interface MySource {
@Output("output")
MessageChannel output();
@Output("output-obj")
MessageChannel outputObj();
}
@Autowired
private MySource source;
source.outputObj().send(MessageBuilder.withPayload(new Foo("bar")).build());
public static class Foo {
private String value;
public Foo(String value) {
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
```
以上就是 Spring Cloud Stream RocketMQ 支持的不同类型消息的接口示例。
阅读全文