Я пытаюсь лучше понять плюсы и минусы того, как мы можем использовать Hibernate.У меня есть опыт работы с HibernateUtil.java, в котором я звоню, чтобы установить / получить сеанс для взаимодействия доступа к данным.Тем не менее, я поддерживал приложения, которые используют свойства @Autowired для реализации SessionFactory внутри DAO.Если не очевидно, мы используем Spring MVC.
Вот несколько кратких примеров того, как можно использовать каждый из них:
МЕТОД A
public class MyDao {
public static void save() {
Session session = HibernateUtil.getSessionFactory().getCurrentSession();
session.beginTransaction();
// ...
}
}
МЕТОД B
public class MyDaoImpl implements MyDao {
private SessionFactory sessionFactory;
//... getter/setter for session factory
public void save() {
Session session = getSessionFactory().getCurrentSession();
session.beginTransaction();
// ...
}
}
Мне любопытно, почему один метод будет использоваться поверх другого.Есть ли разница в производительности или потреблении памяти между ними?Сталкивались ли вы с случаями, когда инъекция боба мешает эффективно выполнять задачи?Должен ли класс обслуживания создавать экземпляр DAO для доступа к его методам, или вы предпочитаете использовать статические методы?
Какие еще плюсы и / или минусы приходят с каждым вариантом против другого?
ПРИЧИНА ЗАКРЫТИЯ ЭТОГО ВОПРОСА
После прочтения более подробно об этом,Я понимаю, что это вопрос, основанный на мнении, и я не получу количественного ответа.Это сводится к синглтон против инъекции зависимости.Это широко обсуждалось, и я прочитал основные аргументы о том, когда использовать, а не использовать каждый.Я думаю, что есть дискуссия о том, должен ли Hibernate быть сконфигурирован как Singleton или DI, но переполнение стека не место для этого обсуждения.Привет.