DispatcherServlet的初始化,是在org.springframework.web.context.ContextLoaderListener完成加载后,才开始的。这时候WebApplicationContext(包含DAO,Service等)已经初始完毕。
DispatcherServlet的初始过程主要完成
1.WebApplicationContext父子容器维护
2.初始化Servlet策略
本文主要内容
DispatcherServlet的集成体系
DispatcherServlet初始化过程
1.DispatcherServlet的继承体系
DispatcherServlet是个普通servlet,是访问入口。明白了继承体系,方便梳理初始化模板。
2.DispatcherServlet初始化过程
2.1 init
public final void init() throws ServletException {
// Set bean properties from init parameters.
//将Servlet配置的参数封装到pvs变量中
try {
PropertyValues pvs = new ServletConfigPropertyValues(getServletConfig(), this.requiredProperties);
BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(this);
ResourceLoader resourceLoader = new ServletContextResourceLoader(getServletContext());
bw.registerCustomEditor(Resource.class, new ResourceEditor(resourceLoader));
initBeanWrapper(bw);//bw就是DispatcherServlet
bw.setPropertyValues(pvs, true);
}
// 让子类实现
initServletBean();
if (logger.isDebugEnabled()) {
logger.debug("Servlet '" + getServletName() + "' configured successfully");
}
}
2.