如何遷移 Hibernate架構到 spring架構?

lyojbuilder發表於2007-05-03
以前我的專案使用Hibernate+struts架構的,所有的Dao類後臺使用的運算元據庫都用hibernate,統一使用一個類得到session(就是hibernate例項的工具類,使用靜態變數sessionfactory),現在有沒有方法給專案增加spring的支援,使這個工具類中的Session交給Spring管理起來? 就是說這個sessionFactory不是靜態變數,是由spring注入進來的,所有的Session都是由spring建立的sessionFactory來得到?我得HibernateUtil這個工具類內容如下:

程式碼
public class HibernateUtil {   
       
    private static Log log = LogFactory.getLog(HibernateUtil.class);   
  
    private static final SessionFactory sessionFactory;   
       
    private static String _configFilePath = "/hibernate.cfg.xml";   
  
    static {   
        try {   
            //URL configFileURL = null;   
            URL configFileURL  = HibernateUtil.class.getResource(_configFilePath);   
            log.info("lyo get config URL: "+configFileURL);   
            // Create the SessionFactory from hibernate.cfg.xml   
            sessionFactory = new Configuration().configure(configFileURL).buildSessionFactory();   
        } 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;   
    }   
       
  
    public static Session getHibernateCurrentSession(){   
            return getSessionFactory().getCurrentSession();   
           
    }   
    public static void closeSession(){   
                   this.getSessionFactory().getCurrentSession().close();   
    }   
  
}   
<p class="indent">


如果用 Spring 來管理起來這個類呢? 我試過用 spring把 sessionFactory注入這個類中,但是總是提示說不能在無事務環境下,使用 session? 有沒有做過這種情況的? 請指點!

相關文章