您的位置:首页 > 其它

Mybatis源码研究3:包和类的概述

2012-12-04 11:22 197 查看
org.apache.ibatis



1.annotation

本包定义了Mybatis框架中的24个注解。

本包对Mybatis的其它包没有任何依赖,也不依赖于第三方的库。

本包只被builder.annotation包的MapperAnnotationBuilder类引用。



2.binding

映射绑定,mapper.xml等映射文件相关实体的抽象。



3.builder

解析Mybatis的配置文件和映射文件,包括Xml格式和Annotation格式2种配置。



4.cache



本包包含了Mybatis框架的缓存接口定义和实现。

PerpetualCache直接实现了Cache接口,其它缓存类实现采用装饰模式实现。

采用装饰模式,一个个包装起来,形成一个链,典型的就是SynchronizedCache->LoggingCache->SerializedCache->LruCache->PerpetualCache,通过链起来达到功能增加。



缓存框架按照 Key-Value方式存储,Key的生成采取规则为:[hashcode:checksum:mappedStementId:offset:limit:executeSql:queryParams]。



本包只引用了Mybatis的io包的Resources,不依赖于任何第三方库。



Mybatis的其它包大量引用了本包中的类和接口,即严重依赖于本包。





5.datasource

数据源相关接口和类。



本包主要引用了Mybatis的reflection的ExceptionUtil类和loggin包的Log接口和LogFactory类。

Mybatis的session包的Configuration类,builder.xml包的XMLConfigBuilder类引用了本包中的类和接口。



6.exceptions



本包定义了Mybatis框架中的异常。

只依赖于Mybatis的executor的ErrorContext。

Mybatis的其它包大量引用了本包中的类和接口,即严重依赖于本包。





7.executor

执行器接口和实现类及周边类和接口。



8.io



本包主要包含了资源加载和访问相关的类。



本包只引用了Mybatis的logging包的Log接口和LogFactory类。



Mybatis的其它包大量引用了本包中的类和接口,即严重依赖于本包。



9.jdbc

JDBC和SQL相关的类。



10.logging



把日志抽象成Log接口,该接口有7种实现。

1.Apache Commons Logging

2.JDBC Logging

3.Java Util Logging

4.Log4j

5.No Logging

6.Slf4J

7.Stdout



一个接口多种实现是框架的一贯作风.



本包主要依赖了,Mybatis的reflection包的ExceptionUtil和io包的Resources。



以及第三方的Log4j,Slf4j,CommonsLogging。



Mybatis的其它包大量引用了本包中的类和接口,即严重依赖于本包。





11.mapping

Mybatis配置文件-映射文件相关的类。



12.metadata



包含了3个元数据实体类和一个工厂类。

Database是对数据库信息的封装,包括catalog,schema,tables。

Table是对表的封装,包括name,columns,primaryKey,catalog,schema。

Column是对列的封装,包括name和type。

DatabaseFactory用来生成Database对象。



本包对mybatis的其它包没有任何依赖,mybatis的其它包也不依赖于本包,

即本包可以作为单独的组件或者工具类提出来。



13.parsing

解析配置文件的核心类和接口。



14.plugin

插件相关接口和类。



15.reflection

反射相关类。



16.scripting

脚本解析相关类。



17.session

会话相关类,提供对外核心接口.



18.transaction

Transaction接口是对事务的抽象,有2种实现方式:

1.JdbcTransaction,jdbc:手动管理

2.ManagedTransaction,managed:container manage the full lifecycle of the transaction



TransactionFactory接口定义了生成Transaction接口(实现类)的若干方法。

该接口有2种实现方式:

1.JdbcTransactionFactory,Creates {@link JdbcTransaction} instances。

2.ManagedTransactionFactory,Creates {@link ManagedTransaction} instances。



本包主要依赖了Mybatis session包的TransactionIsolationLevel和exceptions包的PersistenceException。



Mybatis的其它包大量引用了本包中的类和接口,即严重依赖于本包。



19.type

类型处理,包含了类型处理器接口TypeHandler,父类BaseTypeHandler,以及若干个子类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: