java - 如何通过 Guice 注入(inject)使用 Guava ServiceManager

标签 java guice guava

如前所述here , Guava ServiceManager 可以通过

ServiceManager manager = injector.getInstance(ServiceManager.class);

为了完成这项工作,我在我的 Guice 模块中添加了以下内容:

@Provides
public Set<Service> services(){
    return ImmutableSet.<Service>of(MyService());
}

在我的主课中,

ServiceManager manager = injector.getInstance(ServiceManager.class);
manager.startAsync().awaitHealthy();

如何获取已启动服务的实例?

附注将服务设置为 @Singleton 感觉就像一个 hack。

最佳答案

ServiceManager.getServicesByState().get(RUNNING) 返回正在运行的服务,ServiceManager.getServicesByState().values() 返回所有由 ServiceManager 管理的服务.

关于java - 如何通过 Guice 注入(inject)使用 Guava ServiceManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18502650/

相关文章:

java - 为什么 repaint() 后方 block 不显示?

java - 如何在java中使用返回类型为void的递归方法?

java - 何时使用 Guice 的即时绑定(bind)?

java - 在不覆盖 hashCode() 的情况下删除重复项

java - Cache<K, BlockingDeque<V>> 与 Striped<Lock> 组合 : how to lock the whole cache

java - facebook webhook 验证失败

java - ListView 适配器行为异常。在我单击同一个 ListView 中的按钮后,ListView 中不相关的按钮被单击

java - 吉斯。注入(inject)构造函数

Guice annotatedWith 用于与泛型的接口(interface)

java - Guava ForwardingList 使用示例