Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何确保每个jvm只有一个guava service manager实例?_Java_Guava_Servicemanager - Fatal编程技术网

Java 如何确保每个jvm只有一个guava service manager实例?

Java 如何确保每个jvm只有一个guava service manager实例?,java,guava,servicemanager,Java,Guava,Servicemanager,单例模式允许每个应用程序线程包含一个实例 如何确保每个JVM只运行一个guava Service Manager实例?因此,每当它启动一个新的独立条目时,java线程都可以检查service manager是否正在运行。为什么您认为不创建多个实例是行不通的?将ServiceManagerProvider作为一个单例实现,并仅使用ServiceManagerProvider.get()访问服务管理器 考虑使用依赖项注入而不是单例(反)模式: @Singleton 公共类ServiceManage

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


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

为什么您认为不创建多个实例是行不通的?将
ServiceManagerProvider
作为一个单例实现,并仅使用
ServiceManagerProvider.get()
访问服务管理器


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

@Singleton
公共类ServiceManagerProvider实现提供程序{
专用最终ServiceManager ServiceManager=。。。
@过度
公共服务管理器get(){
返回服务管理器;
}
}

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

请陈述任何改进问题的意见?我不太确定问题出在哪里,我的回答可能会有所帮助。
@Singleton
public class ServiceManagerProvider implements Provider<ServiceManager> {
    private final ServiceManager serviceManager = ...

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