我正在开发基于hibernate的应用程序,但现在在我的应用程序中,我正在为每个用户创建sessionFactory对象,即当用户以不正确的方式登录时。 我搜索相同的问题,但我找不到任何解决方案。我在jndi上阅读了很多,但仍然没有积极的结果。 我有相同的解决方案,但他们使用struts或spring但我只需要hibernate应用程序 是否有人拥有代码或为所有用户共享一个sessionFactory对象。
我正在使用 -
答案 0 :(得分:0)
一种简单的方法可以是创建一个这样的监听器:
public class HibernateContext implements ServletContextListener {
private static SessionFactory sessionFactory;
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
sessionFactory = new Configuration().configure().buildSessionFactory();
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
sessionFactory.close();
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
在你的web.xml上声明它:
<listener>
<listener-class>yourpackage.HibernateContext</listener-class>
</listener>
然后,从代码中的任何位置调用工厂:
HibernateContext.getSessionFactory();