filter和servlet不受spring管理,所以不能依赖注入spring管理的bean,
解决这个问题,一个方法是
在filter的init方法加入如下代码:
//以private UserDao userDao;为例,注入依赖
WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(config.getServletContext());
userDao= (UserDao) wac.getBean("userDao");//这个userDao,是要通过Spring管理的bean name或者id.
至于在Spring里配置你的UserDao,是用注解的方式还是用显示声明的方式,就依赖个人爱好了。
本文介绍了一种在Servlet过滤器(filter)中注入Spring管理的Bean的方法。由于filter本身不被Spring管理,无法直接进行依赖注入。文章提供了一个解决方案,即在filter的init方法中手动获取Spring上下文,并从中获取所需的Bean。
168万+

被折叠的 条评论
为什么被折叠?



