SpringMVC中无法获取SessionFactory的解决!

来源:互联网 发布:mysql 递归查询 编辑:程序博客网 时间:2024/06/08 17:12

1.maven配置SpringMVC+hibernate后,Controller对DAO操作时,无法获取到SessionFactory,原因是我在Controller中直接new的DAO,导致SessionFactory放弃Spring的管理,
然后获取到的SessionFactory就是空的。
2.解决办法:
下面是DAO层的简易代码:
@Transactional@Repository("userDao")public class UserDAO extends BaseDAO<Users> {@Resourceprivate SessionFactory sessionFactory;//查询全部@SuppressWarnings("unchecked")public List<Users> findAll(){Session session = sessionFactory.getCurrentSession();session.beginTransaction();String hql = "from Users";List<Users> users = sessionFactory.getCurrentSession().createQuery(hql).list();session.getTransaction().commit();return users;}}
下面是Controller层的简易代码:

@Controller@RequestMapping("/aaa")public class TestController {@Autowiredprivate UserDAO dao;@RequestMapping("/bbb.do")public void getTime(){List<Users> users = dao.findAll();for (Users u : users) {System.out.println("-->"+u.getUserName());}}}

总结:获取SessionFactory直接通过注解@Autowired 进行Spring注入,问题解决,运行无问题。





上面的代码是Controller里面的,那么DAO里面的呢 
0 0