最近在做一个aop测试时想使用servlet进行测试,在servlet中用了@Autowired 程序一致报如下错误
java.lang.NullPointerException
com.lbs.aop.AopTestServlet.doGet(AopTestServlet.java:46)
javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
这个问题折磨了我好长时间一直以为配置的自动扫描有错误,后来发现servlet和filter是不受spring容器管理的,如果需要在servlet中进行注入需要进行如下配置
public void init(ServletConfig config) throws ServletException
{
SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this, config.getServletContext());
}
添加此初始化方法后就可以使用
@Autowired
private AopProxy aopProxy;