我目前正在重新学习 Hibernate,我已经有五六年没用过了,我正在努力回想我们过去在旧工作场所使用它的方式(Hibernate in Action 已经上线。 ..)
我目前没有在我的应用程序中使用 spring,我想知道的一件事是如何最好地在我的应用程序中检索 SessionFactory 以在我的持久性助手之间共享它 - 我似乎记得你通常只想使用一个. 在我当前的代码库中,我选择在我所有持久性“帮助者”共有的类中这样做:
public abstract class AbstractHelper {
private static final String CONFIG = "configuration.xml";
private static SessionFactory sessionFactory = null;
/**
* @return SessionFactory the Hibernate SessionFactory.
*/
public static SessionFactory getSessionFactory() {
if (sessionFactory == null) {
Configuration configuration = new Configuration();
configuration.configure(CONFIG);
ServiceRegistryBuilder serviceRegistryBuilder =
new ServiceRegistryBuilder().applySettings(configuration.getProperties());
sessionFactory = configuration.buildSessionFactory(
serviceRegistryBuilder.buildServiceRegistry());
}
return sessionFactory;
}
}
这对人们来说是否有意义,还是出于性能等原因我应该以不同的方式来解决这个问题?