策略模式 --MyBatis源码中的应用之一

MyBatis框架中的策略模式
在Mybatis框架中使用了大量的设计模式,并且策略模式也是使用的非常之多,下面类介绍一种场景。
myBatis配置文件mybatis-config.xml
中的节点settings
中有一项配置如下:
<setting name="defaultExecutorType" value="SIMPLE" />
配置的是MyBatis在运行过程中默认的执行器Executor
,此项配置的默认值就是SIMPLE
,指向就是接口Executor
的实现类SimpleExecutor
。
通过查看源码可以看得到接口Executor
的继承关系如下:
这些实现类为接口Executor
的策略簇,实现了不同的执行器策略:
- SimpleExecutor:普通的执行器
- BatchExecutor:批处理执行器
- ReuseExecutor:预处理语句重用执行器
在XMLConfigBuilder
中,对xml配置的进行解析。
这里的configuration
是BaseBuilder
中的。
MyBatis核心类 Configuration
类是根据传入的策略对象类型,生产相应的策略对象,代码如下:
configuration
的使用在DefaultSqlSessionFactory
中。
指定执行器类型,事务隔离级别和事务是否自动提交,从数据源中生成SqlSession
。
大致步骤:
- xml中配置执行器类型
- 生成对应的执行器
- 根据执行器生成
DefaultSqlSession