以下內容的公開課視頻已經錄製,需要的同學可留言
XML配置文件解析流程分析
斷點調試源代碼,跟蹤sqlSessionFactory
的創建過程以及配置文件的解析流程。
SqlSessionFactoryBuilder
建造者模式,用來構建SqlSessionFactory
工廠。XMLConfigBuilder
、XMLMapperBuilder
類似。
SqlSessionFactory
是一個抽象工廠,DefaultSqlSessionFactory
抽象工廠的默認實現,這個工廠產生SqlSession
。
SqlSession
獲取流程分析
DefaultSqlSession
中使用策略模式,根據場景選擇不同的Executor
也就是策略,如BatchExecutor
、ReuseExecutor
、SimpleExecutor
等;
CachingExecutor
中使用了代理模式,真正的執行器還是上述三種執行器中一種,CachingExecutor
做了一些關於緩存的處理。如下:
public int update(MappedStatement ms, Object parameterObject) throws SQLException {
//刷新緩存完再update
flushCacheIfRequired(ms);
return delegate.update(ms, parameterObject);
}