![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mybatis源码学习
todobugs
这个作者很懒,什么都没留下…
展开
-
mybatis源码解析之基础模块-TypeHandler
MyBatis源码解析之基础模块—TypeHandler前文回顾上一章节我们一起分析了Mybatis的Plugin模块的源码。掌握了如何配置拦截器注解,如何自定义拦截器以及拦截器的执行过程。在使用Mybatis的过程中,基本上我们都要在xml中编写相应的sql语句以及对应的java属性与字段的转换。那么对于数据库与java之间的转换,Mybatis是怎么做的呢?接下来本章节我们对MyBatis Type模块类型转换的源码进行分析。架构设计按惯例,咱们先了解下Type模块的总体架构设计。Ty..原创 2020-10-20 14:58:14 · 308 阅读 · 1 评论 -
mybatis源码解析之基础模块-Plugin
MyBatis源码解析之基础模块—Plugin前文回顾上一章节我们一起学习了Mapper接口绑定的源码逻辑。本次我们学习MyBatis的Plugin数据源模块。架构设计Plugin模块所在包路径为org.apache.ibatis.plugin,对应的类架构设计图如下:源码解读SignatureSignature注解类主要定义了三个属性,通过这些属性定位对应要拦截的方法。package org.apache.ibatis.plugin;import java.lang.annota..原创 2020-10-15 10:53:43 · 233 阅读 · 1 评论 -
mybatis源码解析之基础模块-log
MyBatis源码解析之基础模块—Log前文回顾上一章节我们一起学习了DataSource源码逻辑。本次我们学习MyBatis的Log日志处理模块。背景描述只要做过技术开发的小伙伴都应该明白日志的重要性。这是用于追踪线上运行情况及排查问题的利器。如果没有有效规范的日志输出,碰到问题特别是线上问题将会陷入一片迷茫,而且线上环境又不能随意调整。而日志中很重要的一部分还是与数据变更相关的日志。从目前国内的java开发来看,采用mybatis作为持久层框架占比更大,所以对mybatis如何处理日志,以及..原创 2020-09-07 20:42:06 · 182 阅读 · 0 评论 -
mybatis源码解析之基础模块-Transaction
MyBatis源码解析之基础模块—Transaction前文回顾上一篇,咱们一起学习了Mybatis的DataSource模块相关源码,掌握了三种数据源工厂的逻辑,同时也掌握非池化数据源的连接创建,池化数据源如何从空闲列表获取连接并放到活跃连接列表,及连接的归还到空闲队列的逻辑。下面跟随笔者的思路,咱们继续学习另一个重要模块——Transaction模块。核心要点本篇幅主要讲解Mybatis在事务管理中的考量,架构设计Transaction模块所在包路径为org.apache.ibatis..原创 2020-08-02 09:45:06 · 302 阅读 · 0 评论 -
MyBatis源码解析之基础模块—DataSource
MyBatis源码解析之基础模块—DataSource前文回顾上一章节我们一起学习了Mapper接口绑定的源码逻辑。本次我们学习MyBatis的DataSource数据源模块。为解决这种操作方式的弊端,在mybatis版本中提供了binding模块。从而能够在编译期就能够发现问题。同时通过采用jdk动态代理模式,开发者只需要要编写对应的接口即可完成持久层的开发工作。即降低工作量,有大大降低出错概率。接下来,我们将通过源码详细介绍binding的执行逻辑。背景知识因为常见的数据源都会基于java.原创 2020-07-30 15:43:51 · 218 阅读 · 0 评论 -
MyBatis源码解析之基础模块—binding
MyBatis源码解析之基础模块—bindingbinding未诞生之暗黑时代在介绍MyBatis的binding之前,咱们先一段代码:UserInfoDAOpackage com.todobugs.study.dao;import com.todobugs.study.domain.UserInfo;import com.todobugs.study.query.UserInfoQuery;public interface UserInfoDAO { Long insert(U.原创 2020-07-28 10:31:44 · 253 阅读 · 0 评论 -
你知道mybatis如何读取配置文件吗?
用了这么久mybatis,你知道mybatis是如何加载配置文件的?经常看到采用如下方式读取配置文件:InputStream is = Resources.getResourceAsStream("mybatis-config.xml");好像这成了唯一的加载方式,事实是这样的吗?话不多说,直接源码既然是读取文件/资源,那肯定牵涉到io操作。在mybatis源码中我们看到有个io包,路径为:org.apache.ibatis.io,然后我们看下其架构由图中可以看出,类Resources聚合原创 2020-07-16 21:03:15 · 1984 阅读 · 0 评论