一、Spring MVC
1、Model-View-Control(MVC)框架
Model:
封装要显示的数据,不提供进一步的操作
View:
显示出模型包含的信息,不处理参数,不执行验证
Control:
检查和抽取请求参数
调用业务对象,传递从请求中获取的参数
创建模型,视图讲显示对应的模型
选择一个合适的视图发送给客户端
控制器有时不会只有一个
2、框架流程
当web程序启动的时候,ContextLoaderServlet会把对应的配置文件信息读取出来,通过注射去初始化控制器DispatchServlet. 而当接受到一个HTTP请求的时候, DispatchServlet会让HandlerMapping去处理这个请求.HandlerMapping根据请求URL(不一定非要是URL,完全可以自定义,非常灵活)来选择一个Controller. 然后DispatchServlet会在调用选定的Controller的handlerRequest方法,并且在这个方法前后调用这个Controller的interceptor(假如有配置的话),然后返回一个视图和模型的集合ModelAndView.框架通过ViewResolver来解析视图并且返回一个View对象,最后调用View的render方法返回到客户端
二、Spring
1、基本介绍
1)轻型容器,开源框架
2)核心是Bean工厂(Bean Factory),用以构造我们所需要的M(Model)
3)IoC(控制反转),将类的创建和依赖关系写在配置文件里,由配置文件注入,实现了松耦合。简答理解,本来程序是由我们new 出来的,后来交给程序控制进行new,这就是控制反转。
4)AOP 将安全,事务等于程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去,实现了按照方面编程,提高了复用性。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
三、Mybatis
1、基本介绍
mybatis是数据映射器(数据映射器层:用于在对象和数据库之间搬运数据,同时保证对象、数据库和数据映射器层本身相对独立。)
2、作用
mybatis是三层架构中数据持久层的框架。
mybatis对sql进行了封装和外部化,使sql从应用程序代码中分离出来。(业务逻辑从数据库中分离出来,应用程序更容易部署与测试,有更好的可移植性)
3、优缺点
1).mybatis本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件
2).mybatis是某些特性使它能够非常高效的处理大型数据集(支持行处理器,也支持取某个范围内个结果)
3).mybatis允许你用多种方式建立从对象到数据库的映射关系。mybatis允许你将同一个类以多种方式映射。mybatis支持多种数据获取策略。
何时不该使用mybatis:
1.当永远拥有完全控制权时。(可以使用完全的 对象/映射 方案,如hibernate)
2.当应用程序需要完全动态的sql时。
3.当没有使用关系数据库时,(或使用的不是真正的关系数据库时,建议使用jdbc)
注:
动态sql:输入不同查询条件,则生成不同的执行SQL查询语句。
ORM(Object-Relation Mapping):是对象关系映射,用来实现程序对象和关系数据库数据之间的映射。
mybatis与ORM不同,他不是直接把类映射成为数据库表或者说把类的字段映射为数据库列,而是把sql语句的参数与结果映射为类。mybatis在类和数据库表间建立一个额外的间接层。