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最强大的特性之一就是它的动态语句功能。