Изучаю hibernate. Вот тьюториал прохожу:
https://docs.jboss.org/hibernate/orm/5.0/manual/en-US/html/ch01.html#tutorial-firstapp-helpersГлава 1.1.6. Startup and helpers
И говорится - вот тут у нас SessionFactory, и тут сокрыт синглетон.
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
return new Configuration().configure().buildSessionFactory(
new StandardServiceRegistryBuilder().build() );
}
catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Так-то синглетон, конечно. Но вот вопрос: это вообще нормально так делать синглетон? Просто эксепшены сильно недешевая штука. Простая проверка if - она гораздо дешевле обходится.
Был бы признателен за комментарий: можно ли копировать этот кусок кода в свой проект?