我正在使用 Hibernate 4.3。我正在尝试从 HibernateUtil
类中获取 SessionFactory
对象。我试图为整个应用程序只获取一个 SessionFactory
对象,即应用程序的 Singleton 对象。
下面是我目前的代码,我想把它做成单例类。
HibernateUtil.java
public class HibernateUtil {
private static SessionFactory sessionFactory;
private static StandardServiceRegistry serviceRegistry;
public static SessionFactory getSessionFactory() {
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
return sessionFactory;
}
}
请为此建议或提供示例代码。 谢谢。
最佳答案
只应用单例模式
public class HibernateUtil {
private static StandardServiceRegistry serviceRegistry;
private volatile static SessionFactory INSTANCE = null;
public static SessionFactory getSessionFactory() {
if(INSTANCE==null){
createSessionFactory();
}
return sessionFactory;
}
private synchronized static void createSessionFactory() {
if(INSTANCE!=null){return;}
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
INSTANCE = configuration.buildSessionFactory(serviceRegistry);
}
}
编辑:修正了一个逗号拼写错误
关于java - 返回 Hibernate 4.3 的 SessionFactory Singleton 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24155264/