使用注解注入失败,提示空指针
@Repository
public class BasicDaoImp<T> implements IBasicDao<T>{
@Autowired
public BasicDaoImp(SessionFactory sessionFactory) {
this.sessionFactory=sessionFactory;
}
private SessionFactory sessionFactory;
protected Session session = sessionFactory.openSession() ;
典型错误,类在实例化时先会处理成员变量,然后才是注入,最后调用构造方法,所以这里失败。
修改成如下,即将初始化延迟到使用时:
protected Session session ;
@Override
public boolean add(T t) {
if(session==null) {
session=sessionFactory.openSession();
}
return true;
}