<servlet-name>springMvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<servlet-name>springMvc</servlet-name>
<url-pattern>*.form</url-pattern>
DispatcherServlet配置在web.xml文件中。init-param为Servlet启动所需参数。DispatcherServlet会读取初始shucontextConfigLocation参数里面的值从而获取springmvc的配置位置自启动容器
### []( )2、HandlerMapping (处理器映射器)
HandlerMapping 是处理器映射,它的关键作用是将请求进行派发,负责请将求与控制器建立互相对应的关系。它最终由 DispatcherServlet 调用,DispatcherServlet 会从容器中取出所有 HandlerMapping 实例并遍历,让 HandlerMapping 实例根据自己实现类的方式去尝试查找 Handler。它标明了路径与Controller的对应关系,不同的路径访问不同的Controller
> 配置HandlerMapping :
mvc:annotation-driven/
<property name="mappings">
<props>
<prop key="/hello">helloController</prop>
</props>
</property>
### []( )3、Controller (处理请求的控制器)
处理请求的控制器,负责处理由DispatcherServlet 分发的请求,把用户请求的数据发送到业务处理层处理之后封装成一个Model ,然后把该Model 返回给对应的View 进行展示。它实际上就是用来处理业务逻辑的Java类。
> 配置Controller类 :
@Controller
public class DataController {
@RequestMapping("getData")
public ModeAndView hello(String Id) {
System.out.println("hello");
return new ModeAndView("hello")
}
}
### []( )4、ModelAndView (封装数据和视图信息)
ModelAndView 是进行封装数据信息和视图信息的模型。使用ModelAndView类用来存储处理完后的结果数据。ModelAndView中的Model代表模型,View代表视图,很好地解释了该类的作用。业务处理器调用模型层处理完用户请求后,把结果数据存储在该类的model属性中,把要返回的视图信息存储在该类的view属性中,然后返回给SpringMVC框架。框架通过调用配置文件中定义的视图解析器,对该对象进行解析,最后把结果数据显示在指定的页面上。
### []( )5、ViewResolver (视图解析器)
视图解析器ViewResolver 的主要作用是把一个逻辑上的视图名称解析为一个视图。
> 配置ViewResolver :
<property name="prefix" value="/WEB-INF/"/>
<property name="suffix" value=".html"></property>
[]( )SpringMVC执行原理
--------------------------------------------------------------------------
![在这里插入图片描述](https://img-blog.csdnimg.cn/92282e82bacb482ea7f77f1d3ab5c824.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55m-5oCd5LiN5b6X5bCP6LW1,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)
1. 发起请求到前端控制器DispatcherServlet
2. 前端控制器调用处理器映射器HandlerMapping查找Handler
3. 处理器映射器向前端控制器返回找到的Handler
4. 前端控制器调用处理器适配器HandlerAdapter执行Handler
5. 处理器适配器去执行Handler
6. Handler执行完成给处理器适配器返回ModelAndView
7. 处理器适配器向前端控制器返回ModelAndView
8. 前端控制器请求视图解析器ViewResolver去进行视图解析
9. 视图解析器向前端控制器返回视图View
10. 前端控制器进行视图渲染向用户响应结果
# 总结
大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。
**麻烦帮忙转发一下这篇文章+关注我**
![就这一次!拼多多内部架构师培训Kafka源码笔记(现已绝版)](https://img-blog.csdnimg.cn/img_convert/c6a441fc353fb073959e842106a6a458.webp?x-oss-process=image/format,png)
总结
大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。
**麻烦帮忙转发一下这篇文章+关注我**
[外链图片转存中...(img-3vkr2ng4-1721836696311)]