vertx访问事件总线外Verticle类

时间:2015-02-04 13:44:35

标签: java vert.x event-bus

我正在使用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;
}

1 个答案:

答案 0 :(得分: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";
    }
}