首页 > 解决方案 > Micronaut 中的 EventBus 支持

问题描述

我希望看到 Micronaut 支持一种类似于 Guava 或 Spring 中存在的EventBus机制。

使用给定注释(即@Subscribe)注释的 bean 方法将自动注册为事件的侦听器,这些事件可以通过 Micronaut 容器给出的 EventBus 的实现来触发。

此外,如果可以使用等效于一个弹性 I/O 执行器服务的方式异步处理此问题,那将会很酷。

谢谢你,奥斯卡

标签: micronaut

解决方案


您现在可以通过发布事件来实现事件总线提供的 90% 的功能:

class MyEvent { }

class MyBean {
    @Inject 
    ApplicationEventPublisher eventPublisher;

    public void run() {
        eventPublisher.publishEvent(new MyEvent());
    }

并添加一个异步事件监听器:

@Listener
@Async
void myEventListener(MyEvent event) {
    ..
}

可以在方法级别根据需要添加其他功能,例如过滤等。


推荐阅读