之前那篇博客里也提到的情况是一样的,通过ApplicationContextUtil工具类来实现service注入,贴一下博客地址https://my.oschina.net/ytliyang/blog/644533,这个在现在的Spring3.0以后偶的项目应该都是没问题的,但是这个项目确实有点老,好像不支持。起初的时候报空指针我就意识到了可能是service没有注入导致的,由以前的经验告诉我肯定是因为继承了filter导致的。
然后上网查相关资料,经常查到的是从在javax.servlet.Filter中直接获取ServletContext
ServletContext context = config.getServletContext();
方案A:
public void init(FilterConfig config) throws ServletException {
// TODO 自动生成方法存根
ServletContext sc = config.getServletContext();
XmlWebApplicationContext cxt = (XmlWebApplicationContext)WebApplicationContextUtils.getWebApplicationContext(sc);
if(cxt != null && cxt.getBean("textDictFactory") != null && textDictFactory == null){
textDictFactory = (TextDictFactory) cxt.getBean("textDictFactory");
System.out.prin