我有没有办法在代码中实例化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()对其进行初始化。

10-08 06:47