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

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

MyBatis框架中的策略模式

在Mybatis框架中使用了大量的设计模式,并且策略模式也是使用的非常之多,下面类介绍一种场景。

myBatis配置文件mybatis-config.xml中的节点settings中有一项配置如下:

<setting name="defaultExecutorType" value="SIMPLE" />

配置的是MyBatis在运行过程中默认的执行器Executor,此项配置的默认值就是SIMPLE,指向就是接口Executor的实现类SimpleExecutor

通过查看源码可以看得到接口Executor的继承关系如下:

www.zeeklog.com  - 策略模式 --MyBatis源码中的应用之一

这些实现类为接口Executor的策略簇,实现了不同的执行器策略:

  • SimpleExecutor:普通的执行器
  • BatchExecutor:批处理执行器
  • ReuseExecutor:预处理语句重用执行器

XMLConfigBuilder中,对xml配置的进行解析。

www.zeeklog.com  - 策略模式 --MyBatis源码中的应用之一

这里的configurationBaseBuilder中的。

www.zeeklog.com  - 策略模式 --MyBatis源码中的应用之一

MyBatis核心类 Configuration类是根据传入的策略对象类型,生产相应的策略对象,代码如下:

www.zeeklog.com  - 策略模式 --MyBatis源码中的应用之一

www.zeeklog.com  - 策略模式 --MyBatis源码中的应用之一

configuration的使用在DefaultSqlSessionFactory中。

www.zeeklog.com  - 策略模式 --MyBatis源码中的应用之一

www.zeeklog.com  - 策略模式 --MyBatis源码中的应用之一

指定执行器类型,事务隔离级别和事务是否自动提交,从数据源中生成SqlSession

大致步骤:

  1. xml中配置执行器类型
  2. 生成对应的执行器
  3. 根据执行器生成DefaultSqlSession

Read more

超棒的雅思资源!

超棒的雅思资源!

雅思真题材料地址: https://github.com/zeeklog/IETLS 感谢所有人。材料来自:@shah0150 & @kbtxwer * 超棒的雅思资源 * 雅思简介 * 听力 * 阅读 * 写作 * 口语 * 词汇 * 其他 * YouTube 频道 * [播客] (#podcasts) 雅思简介 * 什么是雅思 - 了解什么是雅思 听力 * 高级听力 * 雅思官方网站 * 考试英语 * 英国广播公司节目 * 乔治梅森大学口音学习网站 - 学习不同的口音 * 英国广播公司播客 * 英国文化协会听力练习 阅读 * 雅思提升阅读 写作 * 雅思提升写作 * 雅思从 6 分到 9 分 * 迷你雅思 口语 * Verbling 提供在线英语家教服务

By Ne0inhk
🚀Zeek.ai一款基于 Electron 和 Vite 打造的跨平台(支持 Windows、macOS 和 Linux) AI 浏览器

🚀Zeek.ai一款基于 Electron 和 Vite 打造的跨平台(支持 Windows、macOS 和 Linux) AI 浏览器

是一款基于 Electron 和 Vite 打造的跨平台(支持 Windows、macOS 和 Linux) AI 浏览器。 集成了 SearXNG AI 搜索、开发工具集合、 市面上最流行的 AI 工具门户,以及代码编写和桌面快捷工具等功能, 通过模块化的 Monorepo 架构,提供轻量级、可扩展且高效的桌面体验, 助力 AI 驱动的日常工作流程。

By Ne0inhk