-2

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

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

4

1 回答 1

1

为什么你认为简单地不创建多个实例是行不通的?将 a实现ServiceManagerProvider为单例并仅serviceManagerProvider.get()用于访问服务管理器。


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

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

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

在这里,每个注入器都有一个实例,这正是您(应该)想要的。

于 2014-04-26T14:23:38.977 回答