Mybatis运行原理+Servlet运行原理+Spring运行原理+SpringMVC运行原理

一.Mybatis运行原理

1.当Mybatis运行开始时,先通过Resources工具类加载核心配置文件,之后通过XMLConfigBuilder对配置文件进行解析,将解析的结果封装为Configuration对象,再将Configuration作为参数构建DefaultSqlSessionFactory对象,至此工厂对象创建完毕。

2.接下来通过工厂对象调用openSession()的方法创建SqlSession对象,在这个过程中需要通过TransactionFactory生成Transaction对象,以及生成核心执行器Executor对象,再通过这些对象构建DefaultSqlSession对象,至此SqlSession对象构建完毕。

3.之后通过SqlSession对象执行相应的操作,如果操作成功调用commit提交事务,如果操作失败调用rollback回滚事务。

4.最后调用close关闭session资源。

项目架构:

 

二.Servlet运行原理

1:浏览器发送一个HTTP请求给服务器(get方式或者为post方式)

2:服务器内部会根据url判断请求的Servlet,并产生两个对象ServletRequest请求对象和ServletResponse响应对象

3:开辟一个线程处理本次请求,将产生的对象传入线程中

4:调用对应的Servlet中的service方法,如果我们自定义的Servlet重写了service方法会直接执行service方法,如果没有重写则会调用父类的service方法(先调用的是service(ServletRequest req,ServletResponse resp)方法将req,resp强转为HttpServletRequest和HttpServletResponse对象,再调用service(HttpServletRequest req,HttpServletResponse resp)方法)

5:父类的service方法会根据请求的方式调用对应的doGet()或doPost()方法,此时因为多态实际上我们调用的是我们自定义Servlet中重写的doGet和doPost方法,如果没有重写会调用父类的相应的方法返回错误信息

6:服务器将结果响应给浏览器,本次请求结束

 

三:Spring运行原理:

Spring工作原理
内部最核心的就是IOC了, 动态注入,让一个对象的创建不用new了,可以自动的生产,这其实就是利用java里的反射 反射其实就是在运行时动态的去创建、调用对象,Spring就是在运行时,跟xml Spring的配置 文件来动态的创建对象,和调用对象里的方法的 。
Spring还有一个核心就是AOP这个就是面向切面编程,可以为某一类对象 进行监督和控制(也就是 在调用这类对象的具体方法的前后去调用你指定的模块)
从而达到对一个模块扩充的功能。这些都是通过 配置类达到的。

Spring的运行流程是什么

Spring 启动时读取应用程序提供的 Bean 配置信息,并在 Spring 容器中生成一份相应的 Bean 配置注册表,然后根据这张注册表实例化 Bean,装配好 Bean 之间的依赖关系,最后将实例化好的Beab对象放在Spring容器中,为上 层应用提供准备就绪的运行环境.

项目架构:

四.SpringMVC工作原理

 

1.用户发送请求至前端控制器DispatcherSerlet.

2.DispatcherServilet收到请求调用HandlerMapping处理器映射器.

3.处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找), 生产处理器对象及拦截器(如果有则生成)一并返回给DisparcherServlet.

4.DispatcherServlet调用HandlerAdapeter处理器适配器.

5.HandlerAdapter结果适配调用具体的处理器(Controller, 也叫后端控制器, 是通过请求查询路径的)

6.Controller执行完成返回Model

7.HandlerAdapter将Controller执行结果通过Model返回给DispatcherServlet

8.DispatcherServlet将Model传给ViewReslover试图解析器

9.ViewReslover解析后返回具体View

10.DispatcherServlet根据View进行渲染视图(即将模型数据填充置视图中).

11.DispatcherServlet响应视图给用户

 

项目架构:

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值