一、看了对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.