企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
**前言:**在Spring MVC文档中有关于DispatcherServlet中Bean的总结,做个笔记。我个人有个习惯,觉得自己记不住的东西就写下来以后翻着看,心里留个印象。所以需要说明的是,这些东西其实并不需要强制记忆…实际项目中理解需求,合理运用就好。 **正文:** DispatcherServlet中使用的是WebApplicationContext作为默认的上下文。在这个上下文中有一些Bean值得总结。 1.**Controller**:页面控制器,处理器,怎么理解都行。熟悉Spring MVC的人都知道Controller是整个应用的核心Bean。它主要是做一些对请求的处理。 2.**HandlerMapping**:请求到处理器的映射。如果映射成功,返回一个HandlerExecutionChain对象,其中包含一个Handler处理器对象,几个HandlerInterceptor对象。例如BeanNameUrlHandlerMapping将URL与Bean名字映射,映射成功的Bean就是此处的处理器。 3.**HandlerAdapter**:顾名思义,它会把处理器包装为适配器,从而支持多种类型的处理器。如 SimpleControllerHandlerAdapter 将对实现了 Controller 接口的Bean 进行适配,并且调用处理器的 handleRequest 方法进行功能处理 4.**ViewResolver**:它将把逻辑视图名解析为具体的View,通过这种策略模式,很容易更换其他视图技术;如InternalResourceViewResolver将逻辑视图名映射为jsp视图 5.**LocalResover**:本地化解析,因为 Spring 支持国际化,因此 LocalResover 解析客户端的 Locale 信息从而方便进行国际化 6.**ThemeResovler**:主题解析,通过它来实现一个页面多套风格,即常见的类似于软件皮肤效果 7.**MultipartResolver**:文件上传解析器,用来支持文件上传的 8.**HandlerExceptionResolver**:很明显,是用来处理异常的 9.**RequestToViewNameTranslator**:当处理器没有返回逻辑视图名等相关信息时,自动将请求 URL 映射为逻辑视图名。这种一般属于框架自定义功能。 10.**FlashMapManager**:用于管理 FlashMap 的策略接口,FlashMap 用于存储一个请求的输出,当进入另一个请求时作为该请求的输入,通常用于重定向场景