【发布时间】:2010-01-21 22:02:13
【问题描述】:
有没有办法让我在代码中实例化 Spring MVC DispatcherServlet,而不是将其放在 web.xml 中并由 Web 服务器实例化?
这样做的原因是我想检查 memCache 以查看我最近是否已经呈现了正在请求的页面,如果是,则从 memCache 返回,而不是通过 Spring MVC 和控制器。
大约 2 秒的 DispatcherServlet 实例化很重要,因为我使用的是 Google App Engine,这可能最终导致用户必须额外等待 2 秒。
我试过了
dispatcherServlet = new DispatcherServlet();
dispatcherServlet.init();
dispatcherServlet.service(request, response);
但是我在 init 调用中得到了这个异常:
[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");
【问题讨论】:
-
您能详细说明您的方法吗?我(我想还有相当数量的其他人)使用过 GAE + Spring,任何加快启动时间的方法都将不胜感激。
标签: java google-app-engine servlets spring-mvc