源码分析
文章平均质量分 90
qianmacao
我就是我
展开
-
ibatis源码学习(一)整体设计和核心流程
背景 做这个分析主要的原因是前几天的时候一个接口系统挂了,我需要写故障报告,分析的时候,用Jstack命令获取该时段java线程dump文件,通过分析dump文件发现大量线程处于等待资源状态,并且都是在等待获取itatis的sessionScope对象的锁,所以我就开始分析ibatis源码。下面主要以queryforlist的线为准进行分析。介绍ibatis实现之前,先来看一段jdbc原创 2015-11-16 14:51:39 · 609 阅读 · 0 评论 -
ibatis源码分析(番外篇)
主要以线程的数量为主的分析问题1:线程安全 在整个app多线程中,可以共用一个SqlMapClient来执行操作。原理是利用了ThreadLocal,ThreadLocal实际上是不同的Thread以ThreadLocal自身对象为key的一份ThreadLocalMap拷贝,每个thread创建了各自的Map,这个Map的key就是ThreadLocal的hashcod原创 2015-11-16 15:56:41 · 1101 阅读 · 0 评论 -
ibatis源码学习(二)初始化和配置文件解析
问题 在详细介绍ibatis初始化过程之前,让我们先来思考几个问题。 1. ibatis初始化的目标是什么? 上文中提到过,ibatis初始化的核心目标是构造SqlMapClientImpl对象,主要是其内部重要属性delegate这个代理对象的初始化。delegate这个对象耦合了用户端的操作行为和执行环境,持有执行操作的所需要的所有数据。 2. 如何解析ibatis的s转载 2015-11-16 14:52:33 · 629 阅读 · 0 评论