public interface Processor extends Source, Sink { }
本節介紹Spring Cloud Stream的編程模型。Spring Cloud Stream提供了許多預約義的註釋,用於聲明綁定的輸入和輸出通道,以及如何收聽頻道。html
@EnableBinding
您能夠將Spring應用程序轉換爲Spring Cloud Stream應用程序,將@EnableBinding
註釋應用於應用程序的配置類之一。@EnableBinding
註釋自己使用@Configuration
進行元註釋,並觸發Spring Cloud Stream基礎架構的配置:java
... @Import(...) @Configuration @EnableIntegration public @interface EnableBinding { ... Class<?>[] value() default {}; }
@EnableBinding
註釋能夠將一個或多個接口類做爲參數,這些接口類包含表示可綁定組件(一般是消息通道)的方法。編程
注意
|
在Spring Cloud Stream 1.0中,惟一支持的可綁定組件是Spring消息傳遞 |
@Input
和@Output
Spring Cloud Stream應用程序能夠在接口中定義任意數量的輸入和輸出通道爲@Input
和@Output
方法:spa
public interface Barista { @Input SubscribableChannel orders(); @Output MessageChannel hotDrinks(); @Output MessageChannel coldDrinks(); }
使用此接口做爲參數@EnableBinding
將分別觸發三個綁定的通道名稱爲orders
,hotDrinks
和coldDrinks
。code
@EnableBinding(Barista.class) public class CafeConfiguration { ... }
使用@Input
和@Output
註釋,您能夠指定頻道的自定義頻道名稱,如如下示例所示:htm
public interface Barista { ... @Input("inboundOrders") SubscribableChannel orders(); }
在這個例子中,建立的綁定通道將被命名爲inboundOrders
。blog
Source
,Sink
和Processor
爲了方便尋址最多見的用例,涉及輸入通道,輸出通道或二者,Spring Cloud Stream提供了開箱即用的三個預約義接口。接口
Source
可用於具備單個出站通道的應用程序。文檔
public interface Source { String OUTPUT = "output"; @Output(Source.OUTPUT) MessageChannel output(); }
Sink
可用於具備單個入站通道的應用程序。
public interface Sink { String INPUT = "input"; @Input(Sink.INPUT) SubscribableChannel input(); }
Processor
可用於具備入站通道和出站通道的應用程序。
public interface Processor extends Source, Sink { }
Spring Cloud Stream不爲任何這些接口提供特殊處理; 它們只是開箱即用。源碼來源