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工具呢。