Singleton模式允许每个应用程序线程包含一个实例。
如何确保每个JVM只运行单个guava Service Manager实例?因此,当它启动一个新的单独条目时,java线程可以检查服务管理器是否正在运行。
答案 0 :(得分:1)
为什么你认为不创建多个实例不起作用?将ServiceManagerProvider
实现为单例,并仅使用serviceManagerProvider.get()
访问服务管理器。
考虑使用依赖注入而不是单例(反)模式:
@Singleton
public class ServiceManagerProvider implements Provider<ServiceManager> {
private final ServiceManager serviceManager = ...
@Overrride
public ServiceManager get() {
return serviceManager;
}
}
在这里,您可以获得每个注射器的单个实例,这正是您(应该)想要的。