通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-Mybatis主文件加载 前话 前文主要讲解了Mybatis的主文件加载方式,本文则分析不使用主文件加载方式,即SqlSessionFactoryBean对象不配置configLocation属性而配置mapperLocations属性 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactory…
通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-SqlSessionFactory 前话 本文承接前文的内容继续往下扩展,通过Spring与Mybatis的整合也一步步去了解Mybatis的工作机制. 使用Mybatis,有多种加载方式,本文只罗列主文件加载方式 加载指定的mybatis主文件 1.Mybatis模板文件,其中的属性含义可查看官网中文版链接 <?xml version="1.0" encoding="UTF-8…
元素设置 继续MyBatis的Configuration加载源码分析: private void parseConfiguration(XNode root) { try { Properties settings = settingsAsPropertiess(root.evalNode("settings")); //issue #117 read properties first propertiesElement(root.evalNode("properties&q…
config.xml解析为org.w3c.dom.Document 本文首先来简单看一下MyBatis中将config.xml解析为org.w3c.dom.Document的流程,代码为上文的这部分: static { try { reader = Resources.getResourceAsReader("mybatis/config.xml"); ssf = new SqlSessionFactoryBuilder().build(reader); } catch (IOExce…
概述 上一篇文章,我们主要讲了datasource的相关内容,那么<environments>标签下的内容就看的差不多了,今天就来看一下在拿到transationManager和datasource之后,mybatis又做了什么事情呢? Environment类 我们先来看下解析<environments>标签的那段代码: private void environmentsElement(XNode context) throws Exception { if (context !…
概述 前面几篇文章主要看了mybatis配置文件configuation.xml中<setting>,<environments>标签的加载,接下来看一下mapper标签的解析,先来看下标签的配置: <mappers> <!-- 方式一,mapper类和xml文件可以不再同一个目录下 --> <!-- <mapper resource="mapper/newsMapper.xml" /> --> <!-- 方…
概述 上一篇我们讲了configuation.xml中几个标签的解析,例如<properties>,<typeAlises>,<settings>等,今天我们来介绍剩下的两个比较重要的标签之一,<environments>,这个标签主要用于我们访问数据库的配置进行设置. <environments>解析 我们先来看下configuation.xml中<environments>元素的配置: 1 <environments def…
概述 上一篇我们主要分析了下<environments>标签下面,transactionManager的配置,上问最后还有个遗留问题:就是在设置事物管理器的时候有个autocommit的变量的初始值是在哪边处理的呢?今天我们就来解答一下. <environments>的dataSource分析 private void environmentsElement(XNode context) throws Exception { if (context != null) { if (e…
概要 上一篇,我们主要搭建了一个简单的环境,这边我们主要来分析下mybatis是如何来加载它的配置文件Configuration.xml的. 分析 public class App { public static void main(String[] args) { try { InputStream inputStream = Resources.getResourceAsStream("configuration/Configuration.xml"); SqlSessionFac…
类加载器简介 Java虚拟机中的类加载器(ClassLoader)负责加载来自文件系统.网络或其他来源的类文件.Java虚拟机中的类加载器默认使用的是双亲委派模式,如图所示,其中有三种默认使用的类加载器,分别是Bootstrap ClassLoader.Extension ClassLoader和System ClassLoader(也被称为Application ClassLoader),每种类加载器都已经确定从哪个位置加载类文件. Bootstrap ClassLoader: 加载JDK自带…