对SpringMVC、Struts2、Hibernate以及Mybatis工作原理的初步理解

  • Post author:
  • Post category:其他


一、看了对SpringMVC原理的介绍,我画了一张图:

按图中序号依次向下进行:

1.用户发送请求到前端控制器DispatcherServlet

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

3.HandlerMapping找到具体的处理器,生成处理器对象以及处理器拦截器(如果有则生成),一并将其返回给DispatcherServlet(图中的第3步和第4步)

4.DispatcherServlet根据收到的处理器对象调用HandlerAdapter处理器适配器

5.HandlerAdapter通过适配找到合适的处理器,也叫后端控制器(Controller)

6.后端控制器执行完毕后生成ModelAndView并通过HandlerAdapter返回给DispatcherServlet

7.DispatcherServlet将生成的ModelAndView传给ViewReslover视图解析器

8.ViewReslover将ModelAndView生成具体的View

9.DispatcherServlet根据生成的View进行视图渲染

10.最终将渲染后的视图反馈给用户

二、对struts2的理解,虽然看起来字很多,但是因为它的作用范围小,其实是一张更简单的图:

1.客户端初始化一个指向Servlet容器的请求

2.请求经过一系列过滤器的处理到达FilterDispatcher(图中第2步和 第3步)

3.FilterDispatcher被调用,询问ActionMapper是否需要调用某个Action,如果不需要,则返回Servlet,用户请求失败,如果需要,继续进行

4.FileDispatcher将请求的处理交给ActionProxy

5.ActionProxy根据Configuration Manager询问框架的配置文件,找到需要调用的Action类

6.ActionProxy创建Action的实例ActionInvocation

7.Action执行完毕后,ActionInvocation根据Struts.xml配置文件找到对应的返回结果

8.返回结果通过ActionMapper返回到Servlet容器

9.Servlet将结果反馈给用户

三、Hibernate是一种ORM框架,工作原理大概就是程序执行过程:

1.通过Configuration().configure();读取并解析配置文件

2.由hibernate.cfg.xml中的<mapping resource=”com/xx/User.hbm.xml”/>读取并解析映射信息

3.通过config.buildSessionFactory();//创建SessionFactory

4.sessionFactory.openSession();//打开Session

5.session.beginTransaction();//创建事务Transation

6.persistent operate 持久化操作

7.session.getTransaction().commit();//提交事务

8.关闭Session

9.关闭SessionFactory

四、Mybatis将对数据库的操作写在了xml文件里,简化了对数据库的操作

Mybatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory再根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个SqlSession。SqlSession包含了执行sql所需要的所有方法,可以通过SqlSession实例直接运行映射的sql语句,完成对数据库的增删改查和事务提交等,用完之后关闭SqlSession.



版权声明:本文为qq_39209361原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。