cloud stream 官方文档阅读笔记2

1、引入 springcloud Stream
springcloud Stream 是一个可以用于构建消息驱动服务的框架
为了能够使你的应用连到一个message broker,你可以添加一个 @EnableBinding 注解到你的应用中,然后,你可以添加
@StreamListener 来监听接收事件在你的Stream进程里面。看看下面这个例子

@SpringBootApplication
@EnableBinding(Sink.class)
public class VoteRecordingSinkApplication {

  public static void main(String[] args) {
    SpringApplication.run(VoteRecordingSinkApplication.class, args);
  }

  @StreamListener(Sink.INPUT)
  public void processVote(Vote vote) {
      votingService.recordVote(vote);
  }
}

@EnableBinding 注解可以有多个接口参数(在这个例子中,只有一个Sink接口作为参数)。一个接口定义了输入和输出的通道,
springcloud Stream提供 Source/Sink/Processor 接口。同时,你可以自定义你自己的接口。

来看看Sink接口的实现:

public interface Sink{
  String INPUT = "input";

  @Input(Sink.INPUT)
  SubscribableChannel input();
}

@Input 注解定义一个 input 的通道,也就是消息从消息中间件传输到应用的通道。@Output注解定义了一个output的通道,
也就是消息从应用离开的通道。这两个注释都可以传入一个通道名的参数。如果没有传入,被注解的方法名将被使用。

springcloud Stream 生成了一个具有代表性的接口给我们。我们可以通过自动注入来使用它。比如下面这个例子:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = VoteRecordingSinkApplication.class)
@WebAppConfiguration
@DirtiesContext
public class StreamApplicationTests {

 @Autowired
 private Sink Sink;

 @Test 
 public void contextLoads(){
   assertNotNull(this.sink.input());
 }

}

猜你喜欢

转载自blog.csdn.net/xielinrui123/article/details/85339752