在DispatcherServlet 的父类FrameworkServlet中,有一段代码:
public void onApplicationEvent(ContextRefreshedEvent event) { this.refreshEventReceived = true; onRefresh(event.getApplicationContext()); }
@Override protected void onRefresh(ApplicationContext context) { initStrategies(context); } /** * Initialize the strategy objects that this servlet uses. * <p>May be overridden in subclasses in order to initialize further strategy objects. */ protected void initStrategies(ApplicationContext context) { initMultipartResolver(context); initLocaleResolver(context); initThemeResolver(context); initHandlerMappings(context); initHandlerAdapters(context); initHandlerExceptionResolvers(context); initRequestToViewNameTranslator(context); initViewResolvers(context); initFlashMapManager(context); }
这里监听spring容器refresh事件,在abstartappcontionContext类中的publish事件中会调用,进行onrefresh方法调用,进行springmvc的初始化,加载一个策略,创建一些类,如果没有指定,则取默认的类
http://www.cnblogs.com/fangjian0423/p/springMVC-directory-summary.html