步骤
实现思路:
配置阶段
1:在web.xml文件中配置相应的DispatcherServlet的类路径
2:指定application.properties的文件路径
3:设置客户端请求路径
初始化阶段:
1:init方法
加载web.xml文件的配置
2:初始化SpringIOC容器
根据spring配置信息来进行初始化
3:扫描出所有的相关连的类
配置一个base-package
4:依赖注入
5:handMapping
将url和方法进行映射 其实就是一个map
等待请求阶段:
1:Request 和Response
2: 根据url获取到相应的Method
3:使用反射机制调用method
4:将返回值 输出
项目说明
项目自定义了SpringMVC的RequestMapping,Controller,Service,AutoWrited注解,
项目中都有详细的代码注释
SpringMVC的实现主要是先加载配置文件,之后从配置文件中读取要扫描的
包(beanNames的List),之后实例化对象(IOC)把有注解的类添加到
IOC容器中,在之后就是依赖注入,说白了就是赋值(解决的是@AutoWrited)
,再之后就是handmapping,这个map中存的就是url所对应的方法,最后通过请
求去解析调用。
整个过程实现主要是用了java的反射机制,去获取相应的类,方法,字段。
注解
以前一直认为Spring在定义注解后,需要去代码中具体的实现该注解,就像是
接口的实现,这个错误的认知,今天终于发现了。
其实Spring中的注解可以看成是一个标识符,具体的实现是在具体需要使用的
时候通过java的反射机制可以获取到类,方法,字段上标识的注解,然后再通过
此注解去发挥它应该的作用。
代码地址
[地址](https://github.com/xiaofanjun/XFJRepository.git)