在使用SpringMVC的时候,想要做BaseDao来完成一些共同的功能代码,之后用集成这个Dao来实现具体功能。
可是后来发现,在BaseDao中有一个属性是使用注解注入的,而且子类调用这个属性的时候是没有值得报空指针异常。
有没有什么好办法能解决这个问题?
补充下代码
public class BaseDao {
//这里由spring注入
@Autowired
@Qualifier("sessionFactory")
protected SessionFactory sessionFactory;
protected Session session;
protected Transaction tr;
protected void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
session = this.sessionFactory.getCurrentSession();
tr = session.beginTransaction();
}
}
//集成了BaseDao
public class BlogDao extends BaseDao {
public void addBlog(Blog blog) {
session.save(blog);
tr.commit();
}
public int getLength() {
//抛出异常
System.out.println(session);
List result = session.createQuery("FROM Blogs").list();
tr.commit();
return result.size();
}
}
List result = session.createQuery("FROM Blogs").list();处会出现空指针异常应该是其父类的
SessionFactory
/**
*这个是基础dao
**/
@Repository
public class BaseDaoImpl<T> implements BaseDao<T>{
//自动注入
@Autowired
private SessionFactory sessionFactory;
}
/**
*其它模块继承基础dao
**/
@Repository
public class SysUserImpl extends BaseDaoImpl<SysUser> implements SysUserDao {
}
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。