Spring如何将WebApplicationContext的实例传递给DispatcherServlet构造函数?

时间:2014-02-10 12:28:57

标签: java spring

有人知道Spring如何加载DispatcherServlet并将WebApplicationContext实例传递给DispatcherServlet构造函数?那个魔法特意发生在哪里?

1 个答案:

答案 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)

调用