zoukankan      html  css  js  c++  java
  • SpringMVC源码

    SpringMVC的本质就是一个dispatcherServlet。


    DispatcherServlet的创建过程主要是对9大组件进行初始化。DispatcherServlet的onRefresh方法调用了initStrategies方法,在initStrategies中初始化了组件。

        // 两个方法的参数context是WebApplicationContext,而不是ServletContext。
       // DispatcherServlet的父类FrameworkServlet初始化了WebApplicationContext。
    protected void onRefresh(ApplicationContext context) { this.initStrategies(context); } protected void initStrategies(ApplicationContext context) { this.initMultipartResolver(context); this.initLocaleResolver(context); this.initThemeResolver(context); this.initHandlerMappings(context); this.initHandlerAdapters(context); this.initHandlerExceptionResolvers(context); this.initRequestToViewNameTranslator(context); this.initViewResolvers(context); this.initFlashMapManager(context); }

    初始化某个组件时,首先在容器里按注册时的名称或类型查找(所以在springMVC的配置文件中只需要配置相应类型的组件容器就可以自动找到),如果找不到就调用getDefaultStrategy使用默认的组件。

    当使用<mvc:annotation-driven/>后,就不会全部使用默认组件了,因为它配置了HandlerMapping、HandlerAdapter、HandlerExceptionResolver。

    上传文件组件MultipartResolver是没有默认配置的,因为并不是每个应用都需要上传文件,需要上传也不一定就要使用MultipartResolver。


  • 相关阅读:
    点击两次返回键程序退出
    权限android.permission.WRITE_EXTERNAL_STORAGE 内外置sd卡写权限
    java Calendar add方法
    MeasureSpec简介
    android bitmap转换
    IOS键盘隐藏和显示调用
    内存溢出
    UIView递归
    caLayer
    C++算法
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/12911406.html
Copyright © 2011-2022 走看看