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