有人知道Spring如何加载DispatcherServlet并将WebApplicationContext实例传递给DispatcherServlet构造函数?那个魔法特意发生在哪里?
答案 0 :(得分:0)
Rohit Jain是对的:
org.springframework.web.context.ContextLoader
第330ff行。
protected WebApplicationContext createWebApplicationContext(ServletContext sc) {
Class<?> contextClass = determineContextClass(sc);
if (!ConfigurableWebApplicationContext.class.isAssignableFrom(contextClass)) {
throw new ApplicationContextException("Custom context class [" + contextClass.getName() +
"] is not of type [" + ConfigurableWebApplicationContext.class.getName() + "]");
}
ConfigurableWebApplicationContext wac =
(ConfigurableWebApplicationContext) BeanUtils.instantiateClass(contextClass);
return wac;
}
由public WebApplicationContext initWebApplicationContext(ServletContext servletContext)
调用的,由ContextLoaderListener.contextInitialized(ServletContextEvent event)