code-learning/mybatis/29-mybatis-Spring 集成(一)之调试环境搭建.md

70 lines
2.4 KiB
Markdown

# 精尽 MyBatis 源码解析 —— Spring 集成(一)之调试环境搭建
# 1. 依赖工具
- Maven
- Git
- JDK
- IntelliJ IDEA
# 2. 源码拉取
从官方仓库 https://github.com/mybatis/spring `Fork` 出属于自己的仓库。为什么要 `Fork` ?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。😈
使用 `IntelliJ IDEA``Fork` 出来的仓库拉取代码。
本文使用的 MyBatis 版本为 `2.0.0-SNAPSHOT` 。统计代码量如下:[![代码统计](29-mybatis-Spring 集成(一)之调试环境搭建.assets/01.png)](http://static.iocoder.cn/images/MyBatis/2020_06_01/01.png)代码统计
# 3. 调试
MyBatis 想要调试,非常方便,只需要打开 `org.mybatis.spring.sample.AbstractSampleTest` 单元测试类,选择 `#testFooService()` 方法,右键,开始调试即可。
```
@DirtiesContext
public abstract class AbstractSampleTest {
@Autowired
protected FooService fooService;
@Test
final void testFooService() {
User user = this.fooService.doSomeBusinessStuff("u1");
assertThat(user).isNotNull();
assertThat(user.getName()).isEqualTo("Pocoyo");
}
}
```
有两点要注意:
1、因为单元测试基于 Junit5 ,所以需要依赖 JDK10 的环境,因此需要修改项目的 Project SDK 为 JDK10 。如下图所示:[![修改 Project SDK](29-mybatis-Spring 集成(一)之调试环境搭建.assets/02.png)](http://static.iocoder.cn/images/MyBatis/2020_06_01/02.png)修改 Project SDK
2、AbstractSampleTest 是示例单元测试**基类**,它有五种实现类,分别如下:
```
/**
* 示例单元测试基类
*
* 1. {@link SampleEnableTest}
* 基于 @MapperScan 注解,扫描指定包
*
* 2. {@link SampleMapperTest}
* 基于 {@link org.mybatis.spring.mapper.MapperFactoryBean} 类,直接声明指定的 Mapper 接口
*
* 3. {@link SampleNamespaceTest}
* 基于 <mybatis:scan /> 标签,扫描指定包
*
* 4. {@link SampleScannerTest}
* 基于 {@link org.mybatis.spring.mapper.MapperScannerConfigurer} 类,扫描指定包
*
* 5. {@link SampleBatchTest}
* 在 SampleMapperTest 的基础上,使用 BatchExecutor 执行器
*/
```
- 每种实现类,都对应其配置类或配置文件。胖友可以根据自己需要,运行 AbstractSampleTest 时,选择对应的实现类。
# 666. 彩蛋
小撸怡情,大撸伤身。