# my-coding **Repository Path**: WangYaLin_TimeLine/my-coding ## Basic Information - **Project Name**: my-coding - **Description**: 手写spring、mybatis框架,数据结构等源码项目 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 8 - **Forks**: 1 - **Created**: 2019-06-07 - **Last Updated**: 2025-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #### 项目背景 最近对源码比较感兴趣,所以参照源码自己手写实现,从中学习设计思想 #### 项目介绍 项目使用gradle构建工具,Tomcat服务器部署,分三个模块: 1:datastructure:数据结构模块,包含常用的数据结构(HashMap,Hashtable,ArrayList,LinkedList)等 2:framework:框架模块,包含Spring的IOC,AOP,MVC和mybatis的注解和XML实现,尽量做到高仿源码,所有类名加上“My”前缀以区别源码 3:test-springmvc:web项目模块,引入framework模块,写法与使用原生框架一致 #### 组织架构 ```` framework ├─mybatis 手写mybatis │ ├─annotations 注解包 │ ├─binding mapper代理包 │ ├─builder 环境构建包 │ │ ├─annotation 注解方式构建包 │ │ ├─xml XML方式构建包 │ │ └─MyBaseBuilder.java 基础构建类 │ ├─cache 缓存包 │ ├─constants 常量包 │ ├─datasource 数据源包 │ │ ├─jndi 外部数据源 │ │ ├─pooled 池性数据源 │ │ ├─unpooled 非池性数据源 │ │ └─MyDataSourceFactory.java 数据源工厂类 │ ├─executor 执行器包 │ │ ├─parameter 参数处理包 │ │ ├─resultset 结果处理包 │ │ ├─statement SQL处理包 │ │ └─MyBaseExecutor.java 基础执行器类 │ │ └─MyBatchExecutor.java 批量执行器类 │ │ └─MyCachingExecutor.java 缓存执行器类 │ │ └─MyExecutor.java 执行器接口类 │ │ └─MyReuseExecutor.java 重用执行器类 │ │ └─MySimpleExecutor.java 简单执行器类 │ ├─mapping 环境配置包 │ ├─parsing 配置处理包 │ ├─reflection 反射处理包 │ ├─session session包 │ ├─transaction 事务包 │ │ ├─jdbc JDBC事务 │ │ ├─managed MANAGED事务 │ │ └─MyTransaction.java 事务接口类 │ │ └─MyTransactionFactory.java 事务工厂接口类 │ └─type 类型转换器包 └──────── ```` ```` framework ├─spring 手写spring │ ├─annotation 注解包 │ ├─aop aop包 │ │ ├─advice 通知包 │ │ ├─aspect 连接点包 │ │ ├─intercept 拦截器包 │ │ ├─proxy 代理包 │ │ └─support aop处理包 │ ├─beans bean包 │ │ ├─definition bean定义包 │ │ ├─factory 工厂包 │ │ ├─processor 后置处理器包 │ │ └─MyBeanWrapper bean的封装类 │ ├─context context包 │ ├─core core包 │ ├─web web包 │ │ ├─context 上下文包 │ │ ├─handler 请求封装包 │ │ ├─mvc 视图模块包 │ │ └─servlet 请求分发处理包 │ ├─webmvc webmvc包 │ └────servlet 请求分发处理包 └──────── ```` #### 功能列表 | 功能 | 描述 | | --- | --- | | Spring - IOC | 完成 | | Spring - AOP | 完成 | | Spring - MVC | 完成 | | Mybatis - 注解版 | 完成 | | Mybatis - XML版 | 完成 | #### 开发环境 - JDK1.8 - MySQL5.7 - IntelliJ IDEA 2020.1 x64 #### 分支版本说明 V1.0:springMVC和mybatis的简单实现 V2.0:mybatis完成注解版 V3.0:mybatis参照源码重构 V4.0:spring参照源码重构 V5.0:增加springAOP的实现 V6.0:重构spring模块