0
我正在對Spring Cloud Stream的內容類型自動轉換進行一些測試。Spring Cloud Stream:無法將JSON數組轉換爲POJO列表
正如spring-cloud-stream Guide所示。將({"greeting":"Hello, world"}
)的json格式轉換爲POJOGreetingMessage
對象自動消耗在@StreamListener
中時。這個測試成功。
但,當我改變輸出爲List<GreetingMessage > [{"greeting":"Hello, world"}, {"greeting":"Good morning"}]
的輸入將不會將它轉換爲POJOList<GreetingMessage >
對象,但作爲POJOList<String>
。
所以我的問題是:
- 這是現有的問題還是我做錯了什麼?
代碼:
@Data
@AllArgsConstructor
public class GreetingMessage {
private String greeting;
}
@EnableBinding(Source.class)
public class GreetingSource {
@Bean
@InboundChannelAdapter(value = Source.OUTPUT, poller = @Poller(fixedDelay = "1000", maxMessagesPerPoll = "1"))
public MessageSource<List<GreetingMessage>> greeting() {
return new MessageSource<List<GreetingMessage>>() {
public Message<List<GreetingMessage>> receive() {
return new GenericMessage(Arrays.asList(new GreetingMessage("hello"), new GreetingMessage("hello2")));
}
};
}
}
@EnableBinding(Sink.class)
public class GreetingSink {
@StreamListener(Sink.INPUT)
public void receive(Message<List<GreetingMessage>> msg) {
// handle GreetingMessage
System.out.println(msg);
}
}
謝謝你,馬呂斯。我稍後將會討論一個問題。 – JasonS
[問題](https://github.com/spring-cloud/spring-cloud-stream/issues/726)在Github上提交。 – JasonS