SpringIOC、DI、MVC的基本执行原理

理解SpringIOC、DI、MVC的基本执行原理

一 SpringIOC:

控制反转,指控制权反转,不需要手动new对象实例,交给spring来完成。
我们只需要写好配置文件,定义好bean,和注解。这是通过IOC容器来实现的。
Spring会:读取配置文件——扫描相关类——初始化这些类的实例——放入IOC 容器(map)中(为DI做准备)。

二 DI: 依赖注入。

A依赖于B(可理解为B是A的一个属性),当我们在A中调用B时,不需要new B了。因为IOC容器中就有B的实例,
而且spring会将B实例注入到A中(给A中的B属性赋值)。

以上不管是IOC的初始化还是DI,都是利用反射来执行。

IOC和DI ,实际就是DispatchServlet的内容,是Spring MVC的重要部分

三 MVC: Model View Controller。

1 根据浏览器里的url,怎么找到java类里的方法的?

主要依赖于IOC和DI 在浏览器里访问url,可以直接执行java类中的某方法上。加载web.xml配置文件时,读取xml文件里
的DispatchServlet(初始化IOC,DI,和handleMapping)(handleMapping:保存了在controller中定义的url,和method的对应关系),
根据url到handleMapping中找到对应的metood,并执行该moethod。 这样就把浏览器url访问到java类里的方法了!

2 SpringMVC运行原理

在这里插入图片描述
流程说明:

(1)客户端(浏览器)发送请求,直接请求到DispatcherServlet。

(2)DispatcherServlet根据请求信息调用HandlerMapping,解析请求对应的Handler。

(3)解析到对应的Handler后,开始由HandlerAdapter适配器处理。

(4)HandlerAdapter会根据Handler来调用真正的处理器开处理请求,并处理相应的业务逻辑。

(5)处理器处理完业务后,会返回一个ModelAndView对象,Model是返回的数据对象,View是个逻辑上的View。

(6)ViewResolver会根据逻辑View查找实际的View。

(7)DispaterServlet把返回的Model传给View。

(8)通过View返回给请求者(浏览器)
————————————————
版权声明:本文为CSDN博主「yanweihpu」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yanweihpu/article/details/80366218

发布了19 篇原创文章 · 获赞 6 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/P502520/article/details/103325995