springmvc 九大组件,到底包括DispatcherServlet吗,核心组件又是谁

  • Post author:
  • Post category:其他


springmvc 九大组件,并不包括DispatcherServlet

springmvc 是当下web开发的主流框架,大家多多掌握,理解,对自己还是多多益善的 …

springmvc 官网:

https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc

还是很值得多多查阅,翻看的,也是目前最权威的关于springmvc资料

当然还有其他的web框架,比如:

The following links go to further resources about the various web frameworks described in this chapter.


说到springmvc的九大组件,很多人都误以为包括DispatcherServlet,实际上是不包括的,看过之前一篇 DispatcherServlet源码,发现DispatcherServlet就是一个前端控制器,负责转发,衔接的工作,不负责具体的处理逻辑,所以不归入到springmvc九大组件也是合理的

参看springmvc 官网介绍,‘Special Bean’其实就可以理解为其内置的组件,如下:

下面简单罗列下springmvc的九大组件,其中


HandlerMapping、HandlerAdapter


我们一般把他两作为核心组件,主要是目前web开发前后端分离,View的作用越来越小了,所以view相关组件也不是那么经常提起了



九大组件:

文章参考


https://www.jianshu.com/p/d7982e1fa4c7

1.

HandlerMapping


根据request找到相应的处理器。因为Handler(Controller)有两种形式,一种是基于类的Handler,另一种是基于Method的Handler(也就是我们常用的)

2.

HandlerAdapter


调用Handler的适配器。如果把Handler(Controller)当做工具的话,那么HandlerAdapter就相当于干活的工人

3.HandlerExceptionResolver

对异常的处理

4. ViewResolver

用来将String类型的视图名和Locale解析为View类型的视图

5.RequestToViewNameTranslator

有的Handler(Controller)处理完后没有设置返回类型,比如是void方法,这是就需要从request中获取viewName

6.LocaleResolver

从request中解析出Locale。Locale表示一个区域,比如zh-cn,对不同的区域的用户,显示不同的结果,这就是i18n(SpringMVC中有具体的拦截器LocaleChangeInterceptor)

7.ThemeResolver

主题解析,这种类似于我们手机更换主题,不同的UI,css等

8.MultipartResolver

处理上传请求,将普通的request封装成MultipartHttpServletRequest

9.FlashMapManager

用于管理FlashMap,FlashMap用于在redirect重定向中传递参数

下一篇我们介绍下,在我们web开发过程中,Restful api返回的json格式数据是如何被springmvc框架序列化的,默认用的是什么json序列化工具,能不能替换成我们常用的 Alibaba FastJson工具呢。



版权声明:本文为xzb5566原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。