Spring Cloud Stream教程(五)编程模型
本节介绍Spring Cloud Stream的编程模型。Spring Cloud Stream提供了许多预定义的注释,用于声明绑定的输入和输出通道,以及如何收听频道。
声明和绑定频道
触发绑定@EnableBinding
您可以将Spring应用程序转换为Spring Cloud Stream应用程序,将@EnableBinding
注释应用于应用程序的配置类之一。@EnableBinding
注释本身使用@Configuration
进行元注释,并触发Spring Cloud Stream基础架构的配置:
...
@Import(...)
@Configuration
@EnableIntegration
public @interface EnableBinding {
...
Class<?>[] value() default {};
}
@EnableBinding
注释可以将一个或多个接口类作为参数,这些接口类包含表示可绑定组件(通常是消息通道)的方法。
注意
|
在Spring Cloud Stream 1.0中,唯一支持的可绑定组件是Spring消息传递 |
@Input
和@Output
Spring Cloud Stream应用程序可以在接口中定义任意数量的输入和输出通道为@Input
和@Output
方法:
public interface Barista { @Input
SubscribableChannel orders(); @Output
MessageChannel hotDrinks(); @Output
MessageChannel coldDrinks();
}
使用此接口作为参数@EnableBinding
将分别触发三个绑定的通道名称为orders
,hotDrinks
和coldDrinks
。
@EnableBinding(Barista.class)
public class CafeConfiguration { ...
}
自定义频道名称
使用@Input
和@Output
注释,您可以指定频道的自定义频道名称,如以下示例所示:
public interface Barista {
...
@Input("inboundOrders")
SubscribableChannel orders();
}
在这个例子中,创建的绑定通道将被命名为inboundOrders
。
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不为任何这些接口提供特殊处理; 它们只是开箱即用。源码来源
最新文章
- C#之反射
- 使用Object.create 克隆对象以及实现单继承
- 自定义iOS7导航栏背景,标题和返回按钮文字颜色
- python对象
- core python applications
- 如何在HTML中加载Flash(2种实现方法)_HTML/Xhtml_网页制作
- Python自动化 【第八篇】:Python基础-Socket编程进阶
- github pages搭建个人网站如何添加导航
- 图解Javascript上下文与作用域
- java对文件拷贝的简单操作
- ios deprecated 警告消除 强迫症的选择
- 201521123025《java程序设计》第11周学习总结
- Activi相关表归纳
- 一张有料的图片!!!附文件-图片合成器C语言实现算法
- Miller-Rabin判质数和Pollared-Rho因数分解
- 主线程中的Looper.loop()一直无限循环为什么不会造成ANR
- sql语法中的中的with rollup
- Intellij IDEA注册激活破解
- C#语言与变量、数据类型
- 23 正则表达式和re模块