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);  }

  • 相关阅读:
    原生小程序音频播放
    Vue定义全局过滤器filter
    系统扩展性之引入外部包
    oracle update join
    OAuth2
    oracle pl/sql
    MySQL同步工具otter的使用介绍(一)
    python批量安装apk
    mac brew安装redis
    antd 修改Modal的底部按钮颜色
  • 原文地址:https://www.cnblogs.com/chenzhao/p/2749295.html
Copyright © 2011-2022 走看看