zoukankan      html  css  js  c++  java
  • springmvc的工作原理(原创)

    DispathcerServler继承FrameworkServlet FrameworkServlet 继承HttpServletBean HttpServletBean 继承 HttpServlet实现EnvironmentAware接口

    容器启动首先执行HttpServletBean的init方法 init方法将执行FrameworkServlet的initServletBean方法

    FrameworkServlet的initServletBean方法将 初始化webapplicationContext this.webApplicationContext = initWebApplicationContext();

    initWebApplicationContext方法将判断容器是否启动,否则将 wac = createWebApplicationContext(rootContext);

    createWebApplicationContext方法里将configureAndRefreshWebApplicationContext(wac);

    接着在configure...方法里面添加 wac.addApplicationListener(new SourceFilteringListener(wac, new ContextRefreshListener()));

    private class ContextRefreshListener implements ApplicationListener<ContextRefreshedEvent> {

      public void onApplicationEvent(ContextRefreshedEvent event) {    FrameworkServlet.this.onApplicationEvent(event);   }  }

    上面的方法将添加Listener后,监听ContextRefreshListener,然后出发onApplicationEvent启动DispatherServlet的onRefresh方法

    @Override  protected void onRefresh(ApplicationContext context) {   initStrategies(context);  }

    initStrategies将初始化springmvc

     protected void initStrategies(ApplicationContext context) {   initMultipartResolver(context);   initLocaleResolver(context);   initThemeResolver(context);   initHandlerMappings(context);   initHandlerAdapters(context);   initHandlerExceptionResolvers(context);   initRequestToViewNameTranslator(context);   initViewResolvers(context);   initFlashMapManager(context);  }

  • 相关阅读:
    [CSP校内集训]hotel
    DP小技巧——悬线法
    [SDOI2015]寻宝游戏/异象石(LCA)
    [HAOI2006]旅行
    [SDOI2013]泉(搜索+hash+容斥)
    [NOIP校内集训]home
    [AHOI2014/JSOI2014]骑士游戏(SPFA的本质)
    欧拉函数模板
    开学考试题8:神奇的集合(multiset) 动态开点线段树
    开学考试题5:2017黑龙江省选
  • 原文地址:https://www.cnblogs.com/chenzhao/p/2749295.html
Copyright © 2011-2022 走看看