我有没有办法在代码中实例化Spring MVC DispatcherServlet而不是将其放入web.xml并由Web服务器实例化?
这样做的原因是,我想检查一个memCache来查看我是否最近已经渲染了所请求的页面,如果是,则仅从memCache返回,而不是通过Spring MVC和控制器。
DispatcherServlet的〜2秒实例化非常重要,因为我使用的是Google App Engine,最终可能需要用户再等待2秒钟才能等待其页面。
我试过了
dispatcherServlet = new DispatcherServlet();
dispatcherServlet.init();
dispatcherServlet.service(request, response);
但是我在初始化调用时遇到了这个异常:
[java] java.lang.NullPointerException
[java] at org.springframework.web.servlet.HttpServletBean$ServletConfigPropertyValues.<init>(HttpServletBean.java:196)
[java] at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:114)
基本上,我要寻找的是一种在代码中实例化servlet的方法,而不必在web.xml中指定它并且不必调用
getServletConfig().getServletContext().getServlet("dispatcherServlet");
最佳答案
DispatcherServlet
是一个servlet,因此应调用init(ServletConfig)
而不是init()
对其进行初始化。