2

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

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

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

例如:

public class A {

   public void executeAndSendMessage() {

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

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

private final EventBus eventBus;

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

1 回答 1

2

好的,我已经设法使用 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";
    }
}
于 2015-02-05T08:03:51.637 回答