Mybatis源碼分析(1) - Mybatis包目錄簡介

Mybatis核心包

Map類圖

包名稱 包內內容簡介
annotation 註解目錄。包括全部的註解。如@SELECT,@UPDATE
binding Mapper類的實例反射生成工具目錄
builder 主要是註解,mapper和SqlSuorce的構造器及轉換器
cache Mybatis內部緩存接口。實現了一些特定的緩存策略。FifoCache,LruCache,BlockingCache,LoggingCache
cursor 默認的遊標處理類
dataSource 數據源工廠類及實現。實現類包括JndiDataSourceFactoryPooledDataSourceFactoryUnpooledDataSourceFactory。 數據源實現類: UnpooledDataSourcePooledDataSource
exceptions Mybatis自定義的三個異常類。ExceptionFactoryPersistenceExceptionTooManyResultsExceptionIbatisException。都繼承自RuntimeException
executor 執行器相關包。包括Key生成器、加載器(包括Cglib、Javassist的代理,結果加載器)、參數處理器接口、結果處理器、結果集(resultSet)處理器、Statement處理器(實現類:BaseStatementHandlerCallableStatementHandlerPreparedStatementHandlerRoutingStatementHandlerSimpleStatementHandler)、執行器(SimpleExecutorReuseExecutorCachingExecutorBatchExecutorBaseExecutor)
io 主要是定義的幾個VFS(VFSDefaultVFSClassLoaderWrapper)
javassist javassist的字節碼處理包
jdbc 與Sql相關的操做。如Sql運行器,腳本運行器和Sql封裝類等
lang 指定是用java7仍是java8的API的註解.UsesJava7UsesJava8
logging 各個類型的日誌適配器,都實現了Log接口。StdOutImplSlf4jImplNoLoggingImplLog4j2ImplLog4jImplJdk14LoggingImplBaseJdbcLoggerJakartaCommonsLoggingImpl
mapping 主要是接口參數,sql和返回結果的映射類,主要類包括:MappedStatement,ParameterMap,ParameterMapping,ResultMap,ResultMapping,BoundSql,SqlSource等類
ognl ognl包在Mybatis中的內部代碼引用
parsing 變量解析.如解析${},#{}
plugin 主要包含插件的定義接口。如Interceptor,Plugin,InterceptorChain
reflection 主要是一些反射操做的工具方法和對象工廠類,以及一些經常使用的包裝類,如BaseWrapper,BeanWrapper,CollectionWrapper,MapWrapper,ObjectWrapper,,,
scripting 執行驅動和動態Sql解析的老巢
session 主要是SqlSession和SqlSessionFactory
transaction 主要是mybatis簡單封裝的jdbc事務操做類
type 各個類型數據的處理器。用於動態的設置參數和轉換數據。如IntegerTypeHandler用來處理Integer類型的值的set和get操做。除了八大基本類型。還有經常使用的集合及Map類型,還增長了各類時間類型的處理器

總結

經過整理每一個包的主要功能。通覽整個mybatis的代碼結構,瞭解各個組件的位置和大概的處理關係。爲後續分析源碼打下基礎。java

相關文章
相關標籤/搜索