本身的錯誤在於,new的Dao實例,進行調用,以致於出現Dao中注入的Sessionfactory空指針。web
在hibernate+spring配置過程當中,應注意幾點:spring
一、不能直接new一個DAO的實例,而應該經過spring的配置文件自動初始化session bean,而後再經過spring獲得該DAO的引用,不然在調用getHibernateTemplate()時,會得到一個null的空指針異常。sql
二、在DAO的sql語句中,from後面的應該是POJO bean的類名,而不是數據庫的表名。數據庫
也就是說,在引入spring的ioc時,全部的bean都在裏面統一管理配置。在action裏得到的那個dao並非從spring的bean管理中(applicationContext.xml)得到的,所以也就沒有得到象datasource等資源,改正辦法,在action裏注入dao的引用就能夠了。session
Spring不是執行時經過web.xml進行配置的,是在啓動服務時就配好了的,因此在執行時只需調用注入進來的,若是這時候再new一個對象,是不會出錯,只不過這個對象不是Spring注入進來的對象,因此在得到SessionFactory時拋出空指針。app