1.springMVC
      
     
     
     spring web mvc 是一种基于Java的实现了web MVC设计模式的请求驱动类的轻量级web框架,即使用了MVC架构模式的思想将web层进行指责解耦,基于请求驱动指的就是使用请求—响应模型。
     
     M-Model 模型(即封装了应用程序的数据和一般他们会组成的pojo)pojo就是Java类
     
     V-view 视图 (是负责呈现模型数据和一般它生成的HTML输出,客户端的浏览器能够解释)。
     
     C-Controller 控制器(是负责呈现处理用户的请求并建立适当的模型,并把它传递给视图渲染)。
     
     spring的web模型、视图、控制器 框架是围绕DispatcherServlet的设计。
     
     springMVC的执行过程:
     
     1.首先用户发送请求—->前端控制器(DispatcherServlet),前端控制器根据请求信息(URL)来决定选择哪一个页面控制器进行处理并把请求委托给页面控制器。
     
     2.页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在springMVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕之后返回一个ModelAndView(模型数据和逻辑视图名);
     
     3.前端控制器收回控制权,然后根据返回的逻辑视图名选择相应的视图进行视图渲染,并把模型数据传入以便视图渲染;
     
     4.前端控制器再次收回控制权,将相应返回给用户。
    
     
     
      
       二、spring
      
     
     
     IOC容器(就是具有依赖注入功能的容器)IOC 容器负责实例化、定位、配置应用程序的对象及建立这些对象间的依赖,应用程序无需直接在代码中new相关的对象,应用程序由IOC 容器进行组装。在spring中BeanFactory是 ioc的实际代表者。
     
     AOP 简单的说就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。AOP代表的是一个横向的关系。
     
     AOP用来封装横切关注点,具体可以在如下场景中使用:
     
     .Authentication 权限
     
     .Caching缓存
     
     .Context passing内容传递
     
     .Error handing 错误处理
     
     .Lazy loading 懒加载
     
     .Debugging 调试
     
     .logging,tracing,profilinb,andmonitoring 记录跟踪 优化 校准
     
     .Performance optimization 性能优化
     
     .Persistence 持久化 Resource pooling 资源池
     
     .Synchronization 同步
     
     .Transactions事物
     
     
      
       三、M-Mybatis
      
     
     
     Mybatis是支持普通的sql查询,存储过程和高级映射的优秀持久层框架。mybatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。mybatis使用简单的xml或注解用于配置和原始映射,将接口和Java的pojos(plain old Java object,普通的Java对象)映射成数据库中的记录。
     
     总体流程:
     
     第一步;加载配置并初始化
     
     触发条件:加载配置文件。将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置,执行的SQL语句,结果映射配置),存储在内存中。
     
     第二步;接收调用请求
     
     触发条件:调用mybatis提供的API
     
     传入参数:为Sql的ID和传入参数对象
     
     处理过程:将请求传递给下层的请求处理层进行处理。
     
     第三步;处理操作请求
     
     触发条件:API接口层传递请求过来
     
     传入参数:为sql的ID和传入参数对象
     
     处理过程:
     
     1.根据sql 的ID查找对应的MappedStatement对象。
     
     2.根据传入参数对象解析MappedStatement对象,得到最终要执行的sql和执行传入参数。
     
     3.获取数据库连接,根据得到的最终sql语句和执行传入参数到数据库执行,并得到执行结果。
     
     4.根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。
     
     5.释放连接资源。
     
     第四步;返回处理结果将最终的处理结果返回
     
     mybatis最强大的特性之一就是它的动态语句功能。
    
转载于:https://www.cnblogs.com/liyucheng/p/9036882.html
 
