一.Spring
1.什么是Spring?
Spring是一个java企业级应用的开发开源框架,主要用来开发Java应用。
2.Spring的优点:
- 轻量:Spring是轻量的,基本的版本大约为2MB。
- 控制反转(IOC):在传统的Java开发模式中,当需要一个对象时,我们会自己使用new或者getInstance或间接调用构造方法创建一个对象,而在Spring的开发模式中,Spring容器使用了工厂模式为我们创建了所需要的对象,我们使用时不需要自己去创建对象,直接调用spring为我们提供的对象即可,这就是控制反转的思想。spring通过控制反转实现了松散耦合。
- 面向切面编程(AOP):在面向切面的编程中,我们将一个个对象某些类似的方面横向抽象成一个切面,对这个切面进行一些如权限验证,事务管理,记录日志等公用操作处理的过程就是面向切面编程的思想,它把应用业务逻辑和系统服务分开。
- 容器:spring包含并管理应用中对象的生命周期的配置。
- MVC框架:spring的WEB框架是个精心设计的框架,是web框架的一个很好的替代品。
- 事务管理:spring支持两种类型的事务管理,一种是编程式事务管理,这种方式可以带来极大的灵活性,但是难维护。一种是声明式事务管理,这种方式可以将业务代码和事务管理分离,只需要注解和XML配置来管理事务。
- 依赖注入(DI):Spring使用Java bean对象的Set方法或者带参数的构造方法为我们在创建所需要的对象时将其属性自动设置所需要的值。
3.spring的注入方式
- setter注入:setter方法注入是通过调用无参构造器或无参static工厂方法实例化bean之后,调用该bean的setter方法,即实现了setter的依赖注入。
- 构造注入:构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列的参数,每个参数代表一个对其他类的依赖。
二.Mybatis
1.Mybatis的理解
Mybatis是支持定制化SQL,存储过程以及高级映射的优秀的持久层框架。Mybatis避免了几乎所有的JDBC代码和手工设置参数以及抽取结果集。使用简单的XML或注解来配置和映射基本体,将接口和Java的POJOs映射成数据库中的记录。
2.Mybatis的缓存机制
一级缓存:Mybatis的一级缓存的作用域是session,当openSession()后,如果执行相同的SQL,Mybatis不进行执行SQL而是从缓存中返回。
二级缓存:Mybatis的二级缓存的作用域是一个mapper的namespace,同一个namespace中查询sql可以从缓存中命中。二级缓存是可以跨session的。