SSH整合中 hibernate托管给Spring得到SessionFactory

  <prop key="hibernate.current_session_context_class">thread</prop>

  然后

  Resource resource=new ClassPathResource("/WEB-INF/applicationContext.xml");

  BeanFactory factory=new XmlBeanFactory(resource);

  SessionFactory sessionFactory = (SessionFactory)factory.getBean("sessionFactory");

  就可以得到了

  剩下的 不会就回炉吧,我 的 做法是 修改HibernateUtil文件的得到SessionFactory 的方法就 什么都解决了

  import org.hibernate.HibernateException;

  import org.hibernate.Session;

  import org.hibernate.SessionFactory;

  import org.hibernate.cfg.Configuration;

  import org.springframework.beans.factory.BeanFactory;

  import org.springframework.beans.factory.xml.XmlBeanFactory;

  import org.springframework.core.io.ClassPathResource;

  import org.springframework.core.io.Resource;

  //在hibernate托管给Spring时得到sessionFactory

  public class HibernateUtil {

  private static final SessionFactory sessionFactory;

  static {

  try {

  Resource resource=new ClassPathResource("/WEB-INF/applicationContext.xml");

  BeanFactory factory=new XmlBeanFactory(resource);

  sessionFactory = (SessionFactory)factory.getBean("sessionFactory");

  } catch (HibernateException ex) {

  throw new RuntimeException("Exception building SessionFactory: "

  + ex.getMessage(), ex);

  }

  }

  public static final ThreadLocal session = new ThreadLocal();

  public static Session currentSession() throws HibernateException {

  Session s = (Session) session.get();

  // Open a new Session, if this Thread has none yet

  if (s == null) {

  s = sessionFactory.openSession();

  session.set(s);

  }

  return s;

  }

  public static void closeSession() throws HibernateException {

  Session s = (Session) session.get();

  session.set(null);

  if (s != null)

  s.close();

  }

  }

  //

  当hibernate没有托管给Spring使用这种和传统方式都可以得到啊

  sessionFactory = new Configuration().configure("/WEB-INF/hibernate.cfg.xml")

  .buildSessionFactory();