在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