如何确保每个jvm单个guava服务管理器实例?

时间:2014-04-24 18:06:15

标签: java guava servicemanager

Singleton模式允许每个应用程序线程包含一个实例。

如何确保每个JVM只运行单个guava Service Manager实例?因此,当它启动一个新的单独条目时,java线程可以检查服务管理器是否正在运行。

1 个答案:

答案 0 :(得分:1)

为什么你认为不创建多个实例不起作用?将ServiceManagerProvider实现为单例,并仅使用serviceManagerProvider.get()访问服务管理器。


考虑使用依赖注入而不是单例(反)模式:

@Singleton
public class ServiceManagerProvider implements Provider<ServiceManager> {
    private final ServiceManager serviceManager = ...

    @Overrride
    public ServiceManager get() {
        return serviceManager;
    }
}

在这里,您可以获得每个注射器的单个实例,这正是您(应该)想要的。