spring filter 注入service

需求背景:

spring filter 注入service 查询数据库

通过直接注入方式 service 一直是 null

解决办法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

public class AppFilter implements Filter {
    private AkskService akskService;//这个就是需要注入的service
 
    public void destroy() {
    }
    public void doFilter(ServletRequest servletReq, ServletResponse servletRes, FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletReq;
        HttpServletResponse response = (HttpServletResponse) servletRes;
 
    }
 
    public void init(FilterConfig config) throws ServletException {
        ServletContext context = config.getServletContext();//这里获取applicationContext
        ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
        akskService = (AkskService) ctx.getBean(AkskService.class);
    }
}