如前所述, 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();
如何获取已启动服务的实例?
ps 将服务设置为 @Singleton 感觉就像是 hack。