MyBatis源码分析(xml解析及sqlsession获取)

以下内容的公开课视频已经录制,需要的同学可留言

XML配置文件解析流程分析

通过添加断点进行调试源代码,主要跟踪sqlSessionFactory的创建过程以及配置文件的解析流程。

MyBatis源码分析(xml解析及sqlsession获取)_第1张图片
XML配置文件解析流程.png

SqlSessionFactoryBuilder使用了建造者模式,用来构建SqlSessionFactory工厂。另外XMLConfigBuilderXMLMapperBuilder也使用类似模式。

SqlSessionFactory是一个抽象工厂,DefaultSqlSessionFactory抽象工厂的默认实现,这个工厂产生SqlSession

SqlSession获取流程分析

MyBatis源码分析(xml解析及sqlsession获取)_第2张图片
SqlSession获取流程.png

DefaultSqlSession 中使用策略模式,根据场景选择不同的Executor也就是策略,如BatchExecutorReuseExecutorSimpleExecutor等;

CachingExecutor中使用了代理模式,真正的执行器还是上述三种执行器中一种,CachingExecutor做了一些关于缓存的处理。如下:

    public int update(MappedStatement ms, Object parameterObject) throws SQLException {
        //刷新缓存完再update
        flushCacheIfRequired(ms);
        return delegate.update(ms, parameterObject);
    }

你可能感兴趣的:(MyBatis源码分析(xml解析及sqlsession获取))