五大框架工作原理 总结

      今天有幸复习了一番五大框架,在此将五大框架的执行原理,在此总结以作小记!!!
  • Hibernate执行原理

    

         执行原理:

               1.读取并解析核心配置文件
               2.Configuration负责读取并创建映射信息,创建SessionFactory会话工厂。
               3.SessionFactory会话工厂构建Session对象。
               4.Transaction开启事务。
               5.进行可持久化操作。
               6.Transaction提交事务。
               7.关闭Session及SessionFactory。

         持久化对象的三种状态:

           

                瞬时态:不存在唯一标识OID , 与session未建立关联,未在数据库中存在。
                持久态:存在唯一标识OID , 与session已建立关联,在数据库中存在;
                             当属性发生改变时,清理缓存时会自动和数据库同步。
                脱管(离线)态:不存在唯一标识OID , 与session不存在关联,但在数据库中存在。

  • Spring执行原理

             要说执行原理很重要的两点:AOP面向切面编程  及  IoC控制反转

                   AOP术语:

                               Joinpoint(连接点):所谓连接点是指那些可能被拦截到,可以被增强的点。在spring中,这些点指的是方法, 因为spring只支持方法类型的连接点。
                                Pointcut(切入点): 实际被增强的方法。
                              Advice(通知/增强):所谓通知是指拦截到Joinpoint之后所要做的事情,即为方法添加的某些指定的业务逻辑;通知分为 前置通知, 后置通知, 异常通知, 最终通知, 环绕通知。
                               Aspect(切面): 将通知/增强添加到切入点的过程,称之为切面。
                               Target(目标对象):要增强的类
                               Weaving(织入):是把增强应用到目标的过程;即把Advice 应用到Target的过程
                               Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类
                               Introduction(引介):引介是一种特殊的通知在不修改类代码的前提下, Introduction可以在运行期为类动态地添加一些方法或Field。

                    AOP使用场景:记录系统操作日志

                    AOP实现机制:采用横向抽取机制实现
                                   (1)之前web阶段,写过BaseServlet,采用纵向机制:Servlet继承BaseServlet实现
                                   (2)使用动态代理增强类里面的方法
                                                  a.有接口情况:创建接口实现类代理对象
                                                  b.没有接口情况:创建增强方法所在类的子类代理对象 
  

                    IoC机制: xml配置文件+dom4j+工厂设计模式+反射; 让对象不通过new来创建,把对象创建交给spring管理,利用Java的反射机制,在运行时动态的去创建、调用对象。

                     DI 依赖注入:基于IoC控制反转,创建对象过程中,向属性设置值。

         

  • Struts2执行原理

  •   

              执行原理:

                     1. 通过浏览器发起请求
                     2. 到达框架入口web.xml文件中的前端过滤器
                     3. 执行默认的拦截器栈defaultStack
                     4.利用dom4j对xml文件的解析及反射技术来得到action的全路径名称
                     5. 通过action全路径名称找到对应的Action类
                     6. 执行默认的excute方法获取其他自定义方法
                     7. 执行service, dao获得数据并将数据返回到action
                     8. 根据action返回的字符串找到struts2.xml中result标签中对应的页面并跳转
                     9. 根据Tomcat中的JSP-API.jar 将JSP页面中的EL表达式,元素标签等转成HTML页面返回,展示到浏览器

  • SSH框架整合原理

          

                    整合过程:                       
                           第一步 导入jar包
                           第二步 搭建struts2环境
                                  (1)创建action,创建struts2.xml配置文件,配置action
                                  (2)配置struts2的过滤器
                           第三步 搭建hibernate环境
                                  (1)创建实体类
                                  (2)配置实体类和数据库表映射关系
                                  (3)创建hibernate核心配置文件,引入映射配置文件
                           第四步 搭建spring环境
                                  (1)创建spring核心配置文件
                                  (2)让spring配置文件在服务器启动时候加载,配置监听器 及 指定spring配置文件位置
                           第五步 struts2和spring整合
                                 (1)把action在spring配置(action多实例的)
                                 (2)在struts2.xml中action标签class属性里面写 bean的id值
                           第六步 spring和hibernate整合
                                 (1)把hibernate核心配置文件中数据库配置,在spring里面配置
                                 (2)把hibernate的sessionFactory在spring配置
                           第七步 在dao里面使用hibernateTemplate
                                 (1)在dao注入hibernateTemplate对象
                                 (2)在hibernateTemplate对象中注入sessionFactory
                           第八步 配置事务

  • Mybatis执行原理

         

              执行原理:

               1、Mybatis配置SqlMapConfig.xml,此文件作为mybatis的全局配置文件,配置了Mybatis的运行环境等信息。
                     mapper.xml文件即sql映射文件,文件中配置了操作数据库的sql语句。此文件需要在SqlMapConfig.xml中加载。
                    (一句话总结:加载核心配置文件,同时在其中配置mapping映射文件)
               2、通过Mybatis环境等配置信息构造SqlSessionFactory即会话工厂。
                    (一句话总结:构建SqlSessionFactory会话工厂)
               3、由会话工厂创建sqlSession即会话,操作数据库需要通过sqlSession进行。
                    (一句话总结:通过SqlSessionFactory会话工厂创建SqlSession对象)
               4、Mybatis底层自定义了Executor接口操作数据库,Executor接口有两个实现,一个是基本实现、一个是缓存实现。
                    (一句话总结:自定义Executor接口并实现,来操作数据库)
               5、Mapped Statement也是Mybatis一个底层对象,它包装了Mybatis配置信息及sql映射信息等。
                     mapper.xml文件中一个sql对应一个Mapped Statement对象,sql的id即是Mapped statement的id。
                    (一句话总结:通过mapper.xml文件生成对应的一个Mapped Statement对象)
               6、Mapped Statement对sql执行输入参数进行定义,包括HashMap、基本类型、pojo,
                   Executor通过 Mapped Statement在执行sql前将输入的java对象映射至sql中,输入参数映射就是jdbc编程中对 preparedStatement设置参数。
                   (一句话总结:将Mapped Statement对象中的输入参数信息映射到sql,对应于jdbc中的为preparedStatement设置参数)
                7、Mapped Statement对sql执行输出结果进行定义,包括HashMap、基本类型、pojo,
                     Executor通过 Mapped Statement在执行sql后将输出结果映射至java对象中,输出结果映射过程相当于jdbc编程中对结果的解析处理过程。
                 (一句话总结:将Mapped Statement对象中的输出参数信息映射到java对象,对应于jdbc中的对结果的解析处理)

  • SpringMVC执行原理

      

             执行原理:

                    1、用户发送请求至前端控制器DispatcherServlet
                    2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。
                3、处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
                   4、DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
                   5、执行处理器(Controller,也叫后端控制器)。
                   6、Controller执行完成返回ModelAndView
                   7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
                   8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器
                   9、ViewReslover解析后返回具体View
                  10、DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
                  11、DispatcherServlet响应用户

猜你喜欢

转载自blog.csdn.net/qq_39028580/article/details/79032327