阿里Java二面“跪败”MyBatis源码后,面试官推荐我看这份源码笔记

前言面试

以前和阿里的一个面试官交流中,他讲到对于性能要求高,需求变化多的互联网项目来讲,sql直接优化上,mybatis要比hibernate方便不少,用在sql优化上的开发时间太长,阿里巴巴的持久层抛弃Hibernate,采用了MyBatis框架。sql

因而趁热打铁,研究了一下MyBatis。MyBatis框架的核心功能其实并不难,无非就是动态代理和jdbc的操做,难的是写出来可扩展,高内聚,低耦合的规范代码。数据库

一、MyBatis框架流程简介
阿里Java二面“跪败”MyBatis源码后,面试官推荐我看这份源码笔记编程

在手写本身的Mybatis框架以前,咱们先来了解一下Mybatis,它的源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,才可以更深刻的理解源码。设计模式

二、梳理MyBatis的设计思路
阿里Java二面“跪败”MyBatis源码后,面试官推荐我看这份源码笔记缓存

建立SqlSessionFactory实例session

实例化过程当中,加载配置文件建立configuration对象mybatis

经过factory建立SqlSessionapp

经过SqlSession获取mapper接口动态代理框架

动态代理回调sqlsession中某查询方法

SqlSession将查询方法转发给Executor

Executor基于JDBC访问数据库获取数据

Executor经过反射将数据转换成POJO并返回;给SqlSession

将数据返回给调用者

三、MyBatis三大核心阶段
阿里Java二面“跪败”MyBatis源码后,面试官推荐我看这份源码笔记

初始化阶段:读取XML配置文件和注解中的配置信息,建立解析对象,并完成各个模块的初始化工做。就是把咱们的配置文件加载到内存里面去。在sqlSession初始化的时候加载到内存中去的。

代理阶段:封装iBatis的编程模型,使用mapper接口开发的初始化工做。

数据读写阶段:经过SqlSession完成SQL的解析,参数的映射,SQL的执行,结果的反射解析过程。

在这免费分享一个手写MyBatis框架视频教学,从源码讲解手写MyBatis框架,学习源码。
阿里Java二面“跪败”MyBatis源码后,面试官推荐我看这份源码笔记
四、深刻解析Mybatis

为了能让你们快速掌握MyBatis,升职加薪、跳槽大厂的时候更有底气。在这分享一个MyBatis源码学习文档,这份文档从MyBatis源码的角度分析Mapper绑定过程、SqlSession操做数据库原理、插件实现原理等

因为篇幅限制,小编这里只将此实战文档的所含内容所有展示出来了,须要获取完整文档用以学习的朋友们能够点击连接免费领取:https://shimo.im/docs/TC9Jq63Tp6HvTXdg
共7个部分

第一部分:MyBatis 入门

MyBatis是什么、为何要使用MyBatis、如何使用MyBatis、小结
阿里Java二面“跪败”MyBatis源码后,面试官推荐我看这份源码笔记

第二部分:配置文件解析过程

配置文件解析过程分析,小结
阿里Java二面“跪败”MyBatis源码后,面试官推荐我看这份源码笔记

第三部分:映射文件解析过程

映射文件解析解析入口、解析映射文件、Mapper接口绑定过程分析、处理未完成解析的节点、小结
阿里Java二面“跪败”MyBatis源码后,面试官推荐我看这份源码笔记

第四部分:SQL执行流程
阿里Java二面“跪败”MyBatis源码后,面试官推荐我看这份源码笔记
第五部分:内置数据源

内置数据源初始化过程、UnpooledDataSource、PooledDataSource、小结
阿里Java二面“跪败”MyBatis源码后,面试官推荐我看这份源码笔记

第六部分:缓存机制

缓存类介绍、CacheKey、一级缓存、二级缓存、小结
阿里Java二面“跪败”MyBatis源码后,面试官推荐我看这份源码笔记

第七部分:插件机制

插件机制原理、实现一个分页插件、小结
阿里Java二面“跪败”MyBatis源码后,面试官推荐我看这份源码笔记

MyBatis源码笔记全目录

阿里Java二面“跪败”MyBatis源码后,面试官推荐我看这份源码笔记

获取方式:https://shimo.im/docs/TC9Jq63Tp6HvTXdg

来源:https://www.toutiao.com/i6789594819833365004/

相关文章
相关标签/搜索