纯手写springMVC

实现思路:
1.定义程序入口GdzDispatcherServlet
2.加载配置文件application.properties
3.扫描scanPackege包下所有的类
4.初始化包下的所有实例并保存到ConcurrentHashMap的IOC容器中
5.注入类的属性
6.将url和方法绑定,并保存到ConcurrentHashMap的HandlerMapping中

项目结构目录
在这里插入图片描述

程序的入口需要在web.xml中配置

在这里插入图片描述
核心入口类GdzDispatcherServlet继承了HttpServlet ,我们只需要重写它的init、doGet、doPost方法即可。在init方法中我们需要完成配置文件的加载,IOC容器的初始化和URL的映射绑定。因为init方从servlet创建到销毁只会调用一次,这样我们就可以保证我们初始化的IOC中的bean是单例的,这样可以减少因对象的频繁创建而带来的内存消耗和性能问题。

在这里插入图片描述

doPost方法,将url分发到对应的方法。
在这里插入图片描述
doLoadConfig方法加载配置文件
在这里插入图片描述

doScanner方法扫描包下的所有类
在这里插入图片描述
doInstance初始化bean
在这里插入图片描述
doAutowired注入实例
在这里插入图片描述
initHandlerMapping方法将url和相应的方法绑定

在这里插入图片描述
至此,SpringMVC基本功能已经具备。欢迎技术交流。

代码地址:https://github.com/dezhiguan/SpringMVC

猜你喜欢

转载自blog.csdn.net/qq_35859844/article/details/86567684