一、概述

配置阶段:主要是完成application.xml配置和Annotation配置。

初始化阶段:主要是加载并解析配置信息,然后,初始化IOC容器,完成容器的DI操作,已经完成HandlerMapping的初始化。

运行阶段:主要是完成Spring容器启动以后,完成用户请求的内部调度,并返回响应结果。

 二、配置

1、pom内部只使用servlet作为依赖

2、创建GPDispatcherServlet类继承HTTPServlet,重写init、doGet(调用后者)和doPost

3、web.xml配置servlet类以及初始化参数,即Spring的配置文件contextConfigLoaction=application.properties(内部配置扫描的包)

3、配置注解service、controller(本质是接口)以及元注解

4、可以进行测试-resp.getWriter().write(xxx)

三、初始化阶段

1、声明所需的成员变量---IOC<S,O>,urlde handlerMapping<S,M>

2、init方法实现:加载配置、扫描相关的类、初始化类实例并保存到ioc容器、依赖注入、构造handlerMapping

3、doLoadConfig()

4、doScanner():递归扫描类文件

5、doInstance():对类初始化并放至容器

6、doAutowired():DI操作,将需要赋值的字段赋值

7、initHandlerMapping():映射,将url和方法关联

四、运行阶段

1、doPost内部调用doDispatch

2、doDispatch():获取参数列表,,初始化类,根据url,利用反射机制,调用方法

参考资料:https://gper.club/articles/7e7e7f7ff0g52gce

录播链接:https://pan.baidu.com/s/1YGJ5xFVIWYjalHdwwipxlg

提取码:CSDN

最新文章

  1. nginx服务傻瓜搭建
  2. EDM博主笔记:EDM邮件营销的几个细节问题
  3. 【原创】用python实现shell的tail操作
  4. Python:文件操作
  5. 在vim下写python 会出现python错误:unexpected unident
  6. C#隐式执行CMD命令
  7. (Problem 47)Distinct primes factors
  8. 使用Atlas实现MySQL读写分离+MySQL-(Master-Slave)配置
  9. Nicholas C. Zakas谈怎样才能成为优秀的前端工程师
  10. 【css3网页布局】flex盒子模型
  11. 新工具︱微软Microsoft Visual Studio的R语言模块下载试用Ing...(尝鲜)
  12. How to distribute a database among microservices
  13. (二分查找 拓展) leetcode278. First Bad Version
  14. elk搭建日志系统
  15. 利用Delphi编写Socket通信程序
  16. Java作业:第二次过程性考核 ——长春职业技术学院 16级网络工程
  17. 使用idea搭建SSM框架
  18. 项目Alpha冲刺 2
  19. BCGcontrolBar(三) 添加表格(Grid)组件
  20. springMVC学习 七 视图解析器

热门文章

  1. Elastic:菜鸟上手指南
  2. Kibana:在Kibana中对数据进行深入分析 (drilldown)
  3. MySQL集群搭建(3)-MMM高可用架构
  4. 页面导出Excel
  5. 鼠标悬停过度事件:Transition
  6. Leetcode栈&amp;队列
  7. Ruoyi字典源码学习
  8. 分布式存储系统之Ceph集群CephFS基础使用
  9. TWS耳机蓝牙建连过程_HCI版本
  10. Java学习之路:快捷键