天天看点

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();
}      
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = VoteRecordingSinkApplication.class)
@WebAppConfiguration
@DirtiesContext
public class StreamApplicationTests {

 @Autowired
 private Sink Sink;

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

}