将sessionFactory注入HibernateDaoSupport类,这样我们就可以通过其他类继承获取sessionFactory实例
如下:
package com.ygr.usermanage.utils;
import javax.annotation.Resource;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate4.support.HibernateDaoSupport;
public class MyHibernateDaoSupport extends HibernateDaoSupport{
@Resource(name="sessionFactory")//为父类HibernateDaoSupport注入sessionFactory的值
public void setSuperSessionFactory(SessionFactory sessionFactory){
super.setSessionFactory(sessionFactory);
}
}
在持久层中 继承MyHibernateDaoSupport类,即可调用getHibernateTemplate();
package com.ygr.usermanage.dao.impl;
import java.util.List;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import com.ygr.usermanage.dao.UserDao;
import com.ygr.usermanage.model.User;
import com.ygr.usermanage.utils.MyHibernateDaoSupport;
@Transactional
@Repository("userDao")
@Scope("singleton")
public class UserDaoImpl extends MyHibernateDaoSupport implements UserDao {
@Override
public void addUser(User user) {
getHibernateTemplate().save(user);
}
}