【问题标题】:how to make sure single guava service manager instance per jvm?如何确保每个 jvm 单个番石榴服务管理器实例?
【发布时间】:2014-04-24 18:06:15
【问题描述】:
单例模式允许每个应用程序线程包含一个实例。
如何确保每个 JVM 只运行一个 guava Service Manager 实例?因此,当它启动一个新的单独条目时,java 线程可以检查服务管理器是否正在运行。
【问题讨论】:
标签:
java
guava
servicemanager
【解决方案1】:
为什么您认为简单地不创建多个实例是行不通的?将ServiceManagerProvider 实现为单例,并仅使用serviceManagerProvider.get() 来访问服务管理器。
考虑使用依赖注入代替单例(反)模式:
@Singleton
public class ServiceManagerProvider implements Provider<ServiceManager> {
private final ServiceManager serviceManager = ...
@Overrride
public ServiceManager get() {
return serviceManager;
}
}
在这里,每个注入器都有一个实例,这正是您(应该)想要的。