MyBatis架构简介
1.接口层:MyBatis暴露给调用的接口集合
2.核心处理层:MyBatis核心实现所在,其中涉及MyBatis初始化以及执行一条SQL语句的全流程
3.基础支撑层:整个MyBatis框架的地基,为整个MyBatis框架提供了非常基础的功能
JDK动态代理的实现原理
动态创建代理类,然后通过指定类加载器进行加载
使用池化技术缓存数据库连接的好处
1.在空闲时段缓存一定数量的数据库连接备用,防止被突发流量冲垮
2.实现数据库连接的重用,从而提高系统的响应速度
3.控制数据库连接的上限,防止连接过多造成数据库假死
4.统一管理数据库连接,避免连接泄露
MyBatis初始化过程
MyBatis初始化过程中对mybatis-config.xml全局配置文件的解析
深入分析了mybatis-config.xml配置文件中所有标签的解析流程
介绍了构造者模式这一经典设计模式,它是整个MyBatis初始化逻辑的基础思想
OGNL表达式语言:一款成熟的、面向对象的表达式语言
1.对象变量名称.方法名称
2.@[类的完全限定名]@[静态方法(或静态字段)]
如何根据映射规则将ResultSet映射成Java对象的呢?
答:当MyBatis执行完一条select语句,拿到ResultSet结果集之后,会将其交给关联的ResultSetHandler进行后续的映射处理。
spring IOC
将业务对象交由IoC容器管理,由IoC容器控制业务对象的初始化以及不同业务对象之间的依赖关系
依赖注入
系统不再主动维护业务对象之间的依赖关系,而是将依赖关系转移到IoC容器中动态维护
只需要通过XML配置或注解,就可以确定业务对象之间的依赖关系
Mybatis的运行原理