我有一个使用反应器进行异步任务的 Spring Boot 项目。我已经开始将项目升级到 Spring Boot 1.3.1 的任务。作为副作用,它似乎正在使用新版本的反应器。我试图弄清楚如何让它与新的反应堆一起工作。我正在使用 @Consumer 和 @Selector 注释来告诉它要为这样的事件使用哪些类和方法:
@Consumer
public class MyReceiver {
@Selector(value = "someEvent", reactor = "@rootReactor")
public void receiveEvent(SomeObject someObject) {
...
}
}
我之前通过在服务类中执行此操作来通知接收方:
@Autowired
Reactor rootReactor;
public void someMethod() {
...
rootReactor.notify("someEvent", Event.wrap(someObject));
}
我发现我需要将 rootReactor 的内容更改为:
@Autowired
EventBus eventBus;
public void someMethod() {
...
eventBus.notify("someEvent", Event.wrap(someObject));
}
但我不确定我需要在消费者方面做什么。@Selector 不再支持reactor 属性,所以可以改成eventBus,但是detault 的事件总线现在叫什么名字呢?当我尝试仅使用 value 属性的 @Selector 时,我开始获得 NPE。