Spring Cloud Stream - 从EventListener输出消息

时间:2017-12-27 14:11:40

标签: spring-boot spring-cloud-stream event-driven

我正在尝试利用Spring Data提供的@DomainEvents机制来发布Spring Cloud Stream事件(Spring Boot 2.0.0.M7和Finchley.M5)。我有一个由两部分组成的问题。

  1. 为什么SendTo无效EventListeners
  2. 有没有更好的方法来实现这个目标?
  3. 正在创建DomainEvent并将EventListener发送给SendTo。问题是Message机制似乎没有起作用。下面的第一种方法会触发,但不会转发消息。手动构建@Async @TransactionalEventListener @SendTo(Sink.Output) StreamedEvent handleEventWithSendTo(MyEvent event) { // handle and create event } @TransactionalEventListener void handleEvent(MyEvent event) { // handle and create event sink.output().send(MessageBuilder.withPayload(payload).build()) } 并按第二种方法显示的方式发送它可以正常工作。

    SendTo

    Spring Cloud Stream文档中的标注显示在StreamListener上使用EventListener,这与DomainEvents不完全相同,但我认为可能工作

    对于第二部分,使用Entity要求持久registerEvent的服务代码了解该事件(直接调用EntityPreUpdate上的某些方法代表事件)。我很好奇,如果使用Spring Data回调挂钩(例如PostUpdateuser: User this.httpService.getCurrentUser() .subscribe( data => { this.user = JSON.parse(data["_body"]).value[0]; console.log("1" +this.user) }, error => console.error(error) ); console.log("2"+this.user); )会更好。或者如果有更好的方式在一起。

0 个答案:

没有答案