У меня есть проект Spring Boot, который использует реактор для асинхронных задач. Я начал работу по обновлению проекта до Spring Boot 1.3.1. Как побочный эффект, похоже, что он использует новую версию реактора. Я пытаюсь выяснить, как заставить его работать с новым реактором. Я использую аннотации @Consumer и @Selector, чтобы сказать ему, какие классы и методы, чтобы использовать для события так:Весна, реактор и @Consumer
@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 больше не поддерживает атрибут реактора, поэтому вы можете изменить его на eventBus, но что теперь называется шиной аварийного события? Когда я попробовал @Selector с ТОЛЬКО атрибутом value, я начал получать NPE.