如前所述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/