我在Mongodb中遇到了一些奇怪的错误,在Mongodb中,你应该使用Mongo单身人士.我只是想确保这是非常有效的.
public class DBManager {
public static Mongo mongoSingleton = null;
public static synchronized void getMongo(){
if(mongoSingleton == null){
mongoSingleton = new Mongo();
}
return mongoSingleton;
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
您必须将您的公共成员mongoSingleton设置为私有并隐藏默认构造函数
所以
private static Mongo mongoSingleton = null;
private Mongo() {
}
Run Code Online (Sandbox Code Playgroud)
Mongo类的实现
public class Mongo {
private static volatile Mongo instance;
private Mongo() {
...
}
public static Mongo getInstance() {
if (instance == null) {
synchronized (Mongo.class) {
if (instance == null) { // yes double check
instance = new Mongo();
}
}
}
return instance;
}
}
Run Code Online (Sandbox Code Playgroud)
用法
Mongo.getInstance();
Run Code Online (Sandbox Code Playgroud)
小智 5
这是典型的Singleton模式,但Java中的首选方法是创建一个Enum:
public enum DBManager {
INSTANCE;
// implementation here
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以通过以下方式引用实例:
DBManager.INSTANCE
Run Code Online (Sandbox Code Playgroud)
请注意,在任何一种情况下(枚举或单例模式),结果是每个ClassLoader一个实例,而不是每个JVM.
| 归档时间: |
|
| 查看次数: |
5296 次 |
| 最近记录: |