学习记录——手写SpringMVC(SpringMVC工作流程)

在这里插入图片描述

手写SpringMVC

1.建立注解

@Controller(类注解)

在这里插入图片描述

@Service(类注解)

在这里插入图片描述

@Autowired(属性注解)

在这里插入图片描述

@RequestMapping(类注解+属性注解)

在这里插入图片描述

@RequestParam(参数注解)

在这里插入图片描述

pom.xml

在这里插入图片描述

2.创建业务SpringMVC业务代码(Controller层、Service层)

Service

在这里插入图片描述
在这里插入图片描述

Controller

在这里插入图片描述
在这里插入图片描述

3.DispatcherServlet //SpringMVC中主要执行类

web.xml

设置拦截器
在这里插入图片描述

Servlet

在这里插入图片描述

Init() //初始化工作

在这里插入图片描述

doScan() //扫描包,并取到class文件

在这里插入图片描述

doInstance() //将扫描到的类进行实例化

在这里插入图片描述

doAutowired() //根据实例化的类将有@autowired注解的属性进行反射(相当于new)

在这里插入图片描述
在这里插入图片描述

urlMapping() //判断路径以及对应的方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

doGet()

在这里插入图片描述

doPost() //取得请求url里的类编号、方法编号、参数编号与值

在这里插入图片描述

hand() //取得参数列表并注入

在这里插入图片描述

为什么当http请求过来时,SpringMVC能快速找到对应的方法并执行?

SpringMVC初始化时会扫描所有的包里的注解,然后将方法与url一一对应存储到map对象中,当http请求过来时,就根据这个url查找这个map,并执行相应的方法

SpringMVC:(自己理解)
1、系统初始化阶段:加载所有的类注解、方法注解、属性注解以及参数注解,然后将这些注解内容和对应的信息(或是类对象)以及方法和对应的url根据key-value的形式存储进Map中,系统初始化时,根据注解将将实例化对象反射进对象属性中(Spring IOC)。
2、请求阶段:当用户请求过来时,根据请求的url在map(存储url以及其对应的方法的map)中查找对应的方法,然后执行这个方法,并把参数列表对应映射进去。
3、返回阶段:执行完方法后将得到的内容渲染页面后返回给用户

对应下图就是:
1、用户发送url请求,拦截器拦截后
2-3、Dispatcher Servlet(核心控制器)将url发送给Handler Mapping(处理器映射器)根据url提取出对应的controller(类别名等一系列信息)并返回给.Dispatcher Servlet
4、Dispatcher Servlet将获取到的controller交给Handler Adapter(处理器适配器)
5-7、根据传输过来的信息,Handler Adapter将会执行对应的方法、接口,然后将结果返回给Dispatcher Service
8-9、Dispatcher Servlet将得到的结果交给View Resolver(视图解析器)进行视图渲染后得到结果
10、Dispatcher Servlet将渲染结果返回给页面
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值