今天总结下spring的工具类:WebApplicationContextUtils
当web应用集成了spring后,代表Spring容器的WebApplicationContext对象
将以WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE为键,存放在ServletContext的属性列表中
获取该属性方法如下:
方法一:通过 servletContext键值对取:
WebApplicationContext wac = (WebApplicationContext ) servletContext.getAtribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE)
方法二:使用spring工具类WebApplicationContextUtils
WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(servletContext);
如果servletContext列表中没有有效的WebAPPlicationContext则返回 null,后续代码引用应发一个 NullpointException异常
方法三:推荐使用
WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext);
要求servletContext列表中必须要有有效的WebAPPlicationContex,否则马上抛出一个IllegaStateException
public class demoServlet extends HttpServlet {
IDemoWS demoWS;
public void init() throws ServletException {
super.init();
ServletContext servletContext = this.getServletContext();
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
demoWS = (ISignpicWS)ctx.getBean("demoWS");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
.....//request.getSession().getServletContext()
}
}