mybatis源码编译教程
使用IDEA通过github地址直接导入mybatis 源码
下载mybatis源码
下载地址:https://github.com/mybatis/mybatis-3
以我下载的 mybatis-3-mybatis-3.4.6 为例,下载完后解压。打开pom.xml
<parent><groupId>org.mybatis</groupId><artifactId>mybatis-parent</artifactId><version>30</version><relativePath />
</parent>
发现mybatis源码依赖 mybatis-parent 所以编译前要先下载mybatis-parent
下载mybatis-parent源码
下载地址:https://github.com/mybatis/parent
下载的 mybatis-parent 版本要和mybatis源文件pom.xml 版本一致。
编译mybatis-parent源码
切换到你下载的mybatis-parent目录:
mvn clean install
编译mybatis源码
切换到你下载的mybatis源码目录:
mvn clean mvn install -Dmaven.test.skip=true
如果出现如下错误:
打开pom.xml 文件注释掉 maven-pdf-plugin 插件
<!--<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-pdf-plugin</artifactId></plugin>
-->
然后重新编译
补充点我在mybatis源码中看到用的设计模式
Builder模式:例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder;
工厂模式:例如SqlSessionFactory、ObjectFactory、MapperProxyFactory;
单例模式:例如ErrorContext和LogFactory;
代理模式:Mybatis实现的核心,比如MapperProxy、ConnectionLogger,用的jdk的动态代理,还有executor.loader包使用了cglib或者javassist达到延迟加载的效果;
组合模式:例如SqlNode和各个子类ChooseSqlNode等;
模板方法模式:例如BaseExecutor和SimpleExecutor,还有BaseTypeHandler和所有的子类例如IntegerTypeHandler;
适配器模式:例如Log的Mybatis接口和它对jdbc、log4j等各种日志框架的适配实现;装饰者模式:例如Cache包中的cache.decorators子包中等各个装饰者的实现;
迭代器模式:例如迭代器模式PropertyTokenizer;
mybatis源码编译教程相关推荐
- tx2+opencv源码编译教程(tx2+opencv4.4.0+opencv_contrib-4.4.0)
tx2+opencv源码编译教程(tx2+opencv4.4.0+opencv_contrib-4.4.0) 一.卸载TX2上已安装的opencv 打开终端,输入以下指令卸载已经安装的opencv: ...
- tensorflow源码编译教程_源码编译安装tensorflow 1.8
参考官方指南 基本要求 官网测试过的源代码配置如下: image 也就是说,按照这个版本安装的话不应该再产生版本的问题了. 我的配置 ubuntu 16 python 2.7 nccl 2.3 gcc ...
- SQLite源码编译教程
SQLite源码编译安装 SQLite简介 编译安装 源码下载 编译过程 demo实例 总结 SQLite简介 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页.如果你想学习如何使用M ...
- mybatis源码编译出现问题
1 mybatis-3 下载GitHub源码后 pom文件 <parent><groupId>org.mybatis</groupId><artifactI ...
- 最好用的Redis Desktop Manager 0.9.3 版本下载 以及源码编译教程
文章目录 一.前言 二.编译教程 2.1 [redis destop manager 的源码地址](https://github.com/uglide/RedisDesktopManager) 2.2 ...
- Spring 6 源码编译教程分享~
前言:Spring Boot 3 RELEASE版本于 2022年11月24日 正式发布,此次Spring Boot里程碑的升级也要求了最低JDK 17 和 Spring Framework 6 ,其 ...
- 可视化工具VisIt源码编译教程(Windows,图文讲解)
我新建了一个VisIt软件的交流qq群:1169585995,欢迎大家加入一起交流,一起学习! 所用软件及其版本 用于源码编译的软件及版本如下: Windows版本:win10 VisIt版本:vis ...
- orangepi升级linux内核,orangePi源码编译教程
8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? #环境 ubuntu 12.04.5 64位 8G内存 jdk-6u45-linux-x64.bin 64位JDK6 板 ...
- 怎么查看MySQL 源码编译了什么_Mysql 源码编译教程贴
题外话:这是一篇教程贴,不仅学的是mysql的编译,还是一些编译的知识.我也是一个菜鸟,写一些感悟和心得,有什么问题可以批评指正,谢谢! 如果只是为了安装请移到我的另一篇安装贴: Mysql安装贴 环 ...
- MeshLab 2022.02 源码编译教程
目录 前言 编译准备 编译配置 1. 源码下载 2. 路径配置 3. 命令行编译 4. 报错解决 结语 前言 MeshLab是三维立体网格处理软件,为自由软件,首先发布于2005年年底.此软件可显示及 ...
最新文章
- 自定义checkbox,redio等
- android汽车之家顶部滑动菜单,Android自定义控件之仿汽车之家下拉刷新
- cvs svnmanager
- .NET简谈组件程序设计之(上下文与同步域)
- Android 设计的几处硬伤
- 基于SOC方案的嵌入式开发-远程定时设备
- 查找算法——插值查找
- BeijingPeople
- Kconfig中select与depends on原理
- IE7访问HTTPS网站提示证书有安全问题的解决方案
- 数独终局生成及残局求解
- Arduino and the SPI bus
- 新手java练习题100(1-5)
- 单片机原理与应用实验——串口(C语言),使用串口发送或接收数据,定时器1作为波特率发生器
- 状态模式(State)-七十二变
- 【python--爬虫】b站弹幕爬虫
- 7个可用手机写博客的地方
- iPhone界面各种控件的大小
- Linux、Mac时间戳转换小工具
- 反编译apk获得源代码
热门文章
- linux 虚拟示波器,模拟示波器怎么看频率,模拟示波器频率计算
- PPAPI nacl_sdk安装
- 【DP专题】LintCode刷题笔记
- LintCode #4. 丑数 II
- 购票系统c语言座位分配,铁路购票系统的简单座位分配算法
- 基于PHP+MySQL共享自行车租赁管理系统的设计与实现
- USB 协议分析(含基本协议和 USB 请求和设备枚举)
- 软件测试相关英文单词整理
- 解决xShell4某些情况下按删除键会输出^H的问题
- python更新包列表出错_python – 完整更新pip包时出错