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时抛出空指针。

原文地址:https://www.cnblogs.com/killer-xc/p/8444668.html