W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
修改com.example.loggingconsumer.LoggingConsumerApplication
類,如下所示:
@SpringBootApplication @EnableBinding(Sink.class) public class LoggingConsumerApplication { public static void main(String[] args) { SpringApplication.run(LoggingConsumerApplication.class, args); } @StreamListener(Sink.INPUT) public void handle(Person person) { System.out.println("Received: " + person); } public static class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public String toString() { return this.name; } } }
從前面的清單中可以看到:
@EnableBinding(Sink.class)
啟用了Sink
綁定(輸入無輸出)。這樣做會向框架發(fā)出信號,以啟動對消息傳遞中間件的綁定,在該消息傳遞中間件自動創(chuàng)建綁定到Sink.INPUT
通道的目的地(即隊列,主題和其他)。handler
方法來接收類型為Person
的傳入消息。這樣做可以使您看到框架的核心功能之一:它嘗試自動將傳入的消息有效負載轉換為類型Person
。您現(xiàn)在有了一個功能齊全的Spring Cloud Stream應用程序,該應用程序確實偵聽消息。為了簡單起見,我們從這里開始,假設您在第一步中選擇了RabbitMQ 。假設已經(jīng)安裝并運行了RabbitMQ,則可以通過在IDE中運行其main
方法來啟動應用程序。
您應該看到以下輸出:
--- [ main] c.s.b.r.p.RabbitExchangeQueueProvisioner : declaring queue for inbound: input.anonymous.CbMIwdkJSBO1ZoPDOtHtCg, bound to: input --- [ main] o.s.a.r.c.CachingConnectionFactory : Attempting to connect to: [localhost:5672] --- [ main] o.s.a.r.c.CachingConnectionFactory : Created new connection: rabbitConnectionFactory#2a3a299:0/SimpleConnection@66c83fc8. . . . . . --- [ main] o.s.i.a.i.AmqpInboundChannelAdapter : started inbound.input.anonymous.CbMIwdkJSBO1ZoPDOtHtCg . . . --- [ main] c.e.l.LoggingConsumerApplication : Started LoggingConsumerApplication in 2.531 seconds (JVM running for 2.897)
轉到RabbitMQ管理控制臺或任何其他RabbitMQ客戶端,然后向input.anonymous.CbMIwdkJSBO1ZoPDOtHtCg
發(fā)送消息。anonymous.CbMIwdkJSBO1ZoPDOtHtCg
部分代表組名并已生成,因此在您的環(huán)境中它一定是不同的。對于更可預測的內容,可以通過設置spring.cloud.stream.bindings.input.group=hello
(或您喜歡的任何名稱)來使用顯式組名。
消息的內容應為Person
類的JSON表示形式,如下所示:
{"name":"Sam Spade"}
然后,在控制臺中,您應該看到:
Received: Sam Spade
您還可以將應用程序生成并打包到引導jar中(使用./mvnw clean install
),并使用java -jar
命令運行生成的JAR。
現(xiàn)在,您有了一個正在運行的(盡管非常基礎的)Spring Cloud Stream應用程序。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: