0

有人可以解释一下事件总线是如何工作的吗,我看过所有关于那个的文档,但我不明白

我会给你我想做的;所以我有 AccountPresenter 和 AccountView 所以在我的视图中我有按钮来打开我创建我的帐户的窗口,我想要做的是在另一个 View Presenter 中滑动视图和创建窗口,并且可以在 AcccountPresenter 中使用 eventBus spring vaadin 或其他 EventBus。我真的不明白这个的作用。

谢谢

4

2 回答 2

0

对于春季的事件处理,您首先应该创建一个事件,例如:

public static class CloseOpenWindowsEvent extends ApplicationEvent {
    private static final long serialVersionUID = -4672026509699779702L;

    public CloseOpenWindowsEvent(Object source) {
        super(source);
        // TODO Auto-generated constructor stub
    }
}

然后你需要一些东西来发布你的活动:

@Autowired
private ApplicationEventPublisher eventPublisher;
...
eventPublisher.publishEvent(new CloseOpenWindowsEvent(MyUI.getCurrent()));

和听它的人:

@EventListener
public void closeOpenWindows(final CloseOpenWindowsEvent event) {
    for (Window window : getWindows()) {
        window.close();
    }
}

但尽管如此顺利,但在你的情况下,我认为这不是要走的路。相反,您应该使用 VaadinNavigator并调整ClickListener您的按钮以导航到另一个视图。

UI.getCurrent().getNavigator().navigateTo(otherView.getViewName());

结帐https://github.com/khauser/microservices4vaadin/tree/master/microservices/frontend,您将拥有两个。使用 spring 进行事件处理并使用Navigator.

于 2017-03-03T08:20:31.750 回答
0

在 Spring EventBus 中实际上遵循了 Reactor 模式。仅当用户不期望应用程序直接响应时才使用 Reactor 模式,因为我们仅使用此 Reactor 演示执行后台作业。
通过使用EventBus,堆内存被分配给应用程序,它们并行执行任务。然而, Reactor 设计模式可以使用最快的非阻塞 Dispatcher 每秒处理超过 15,000,000 个事件。

有关详细信息,请查看链接 Spring Reactor 教程

于 2018-12-12T06:21:23.437 回答