1. 程式人生 > >cloud stream 官方文件閱讀筆記2

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());
 }

}