1. 程式人生 > >Spring注入SessionFactory的空指標異常

Spring注入SessionFactory的空指標異常

自己的錯誤在於,new的Dao例項,進行呼叫,以至於出現Dao中注入的Sessionfactory空指標。

在hibernate+spring配置過程中,應注意幾點:

1、不能直接new一個DAO的例項,而應該通過spring的配置檔案自動初始化session bean,然後再通過spring得到該DAO的引用,否則在呼叫getHibernateTemplate()時,會獲得一個null的空指標異常。

2、在DAO的sql語句中,from後面的應該是POJO bean的類名,而不是資料庫的表名。

也就是說,在引入spring的ioc時,所有的bean都在裡面統一管理配置。在action裡獲得的那個dao並不是從spring的bean管理中(applicationContext.xml)獲得的,因此也就沒有獲得象datasource等資源,改正辦法,在action裡注入dao的引用就可以了。

Spring不是執行時通過web.xml進行配置的,是在啟動服務時就配好了的,所以在執行時只需呼叫注入進來的,如果這時候再new一個物件,是不會出錯,只不過這個物件不是Spring注入進來的物件,所以在獲得SessionFactory時丟擲空指標。