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。


  • 相关阅读:
    php数组到json的转变
    微信小程序获取微信绑定的手机号
    微信小程序授权登录
    用海豚框架(DolphinPHP)实现单/多图片上传时,如何获得图片路径
    数据库索引-简单了解
    php将二维数组转换成我想要的一维数组
    php的八大数据类型
    单例模式
    Springboot配置Sqlserver
    WinForm 文件操作
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/12911406.html
Copyright © 2011-2022 走看看