verticle 外的 vertx 访问事件总线 class

vertx access event bus outside verticle class

我正在研究 vert.x 事件总线,在最简单的示例中一切正常。

但是我想将消息发送到 Verticle class 之外的 vert.x 事件总线。

如何从 Verticle 外部访问事件总线 class?
可以利用 Guice 来提供事件总线吗?

例如:

public class A {

   public void executeAndSendMessage() {

      ... some logic ...
      eventBus.send("address", "finished job");
  }
}

现在我可以在此 class 的构造函数中提供事件总线本身并保留对它的引用。但这似乎有点麻烦:

private final EventBus eventBus;

public A(EventBus bus) {
   eventBus = bus;
}

好的,我已经设法使用 Guice 注入并使用提供程序注入事件总线:https://github.com/larrytin/vertx-mod-guice

public class TestModule implements VertxModule {

    ...

    @Provides
    public EventBus getEventBus() {
        return vertx.eventBus();
    }
}


public class A() {

    @Inject
    Provider<EventBus> eventBus;

    @GET
    @Path("/foo")
    public String foo() {

        eventBus.get().send("Test-Address", "HELLO");
        return "bar";
    }
}