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

 

 

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐