zoukankan      html  css  js  c++  java
  • 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消息传递MessageChannel及其扩展名SubscribableChannelPollableChannel未来版本应该使用相同的机制将此支持扩展到其他类型的组件。在本文档中,我们将继续参考渠道。

    @Input@Output

    Spring Cloud Stream应用程序可以在接口中定义任意数量的输入和输出通道为@Input@Output方法:

    public interface Barista {
    
        @Input
        SubscribableChannel orders();
    
        @Output
        MessageChannel hotDrinks();
    
        @Output
        MessageChannel coldDrinks();
    }
    

      使用此接口作为参数@EnableBinding将分别触发三个绑定的通道名称为ordershotDrinkscoldDrinks

    @EnableBinding(Barista.class)
    public class CafeConfiguration {
    
       ...
    }
    

      

    自定义频道名称

    使用@Input@Output注释,您可以指定频道的自定义频道名称,如以下示例所示:

    public interface Barista {
        ...
        @Input("inboundOrders")
        SubscribableChannel orders();
    }
    

      

    在这个例子中,创建的绑定通道将被命名为inboundOrders

    SourceSinkProcessor

    为了方便寻址最常见的用例,涉及输入通道,输出通道或两者,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不为任何这些接口提供特殊处理; 它们只是开箱即用。源码来源

  • 相关阅读:
    mysql函数基本使用
    django form 组件源码解析
    jwt
    python数据类型 ——bytes 和 bytearray
    汇编基础四 --函数调用与堆栈平衡
    汇编基础之三 -- 汇编指令
    汇编基础之二 -- 寄存器和内存堆栈
    汇编基础之一 -- 位运算和四则运算的实现
    存储过程中的设置语句含义
    (转载)SQL去除回车符,换行符,空格和水平制表符
  • 原文地址:https://www.cnblogs.com/allalongx/p/8404160.html
Copyright © 2011-2022 走看看