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

最佳答案

好的,我设法使用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";
    }
}

关于java - verticle类外部的vertx访问事件总线,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28322955/

10-10 11:59