- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Mybatis源码解析之标签的解析
阅读须知
Mybatis源码版本:3.4.4
⽂章中使⽤/* */注释的⽅法会做深⼊分析
正⽂
Mybatis是我们⽇常开发过程中经常使⽤的ORM框架,读者可以⾸先参考来看⼀下Mybatis的使⽤⽰例,⾸先要通过
SqlSessionFactoryBuilder来构建SqlSessionFactory,我们就以SqlSessionFactory的构建为⼊⼝来分析Mybatis源码:
SqlSessionFactoryBuilder:
public SqlSessionFactory build(InputStream inputStream) {
/* 构建SqlSessionFactory */
return build(inputStream, null, null);
}
SqlSessionFactoryBuilder:
public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties) {
try {
XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, environment, properties);
解析配置,构建
/* SqlSessionFactory */
return build(parser.parse());
} catch (Exception e) {
throw ExceptionFactory.wrapException(Error building SqlSession., e);
} finally {
ErrorContext.instance().reset();
try {
inputStream.close();
} catch (IOException e) {
}
}
}
XMLConfigBuilder:
public Configuration parse() {
if (parsed) {
throw new BuilderException(Each XMLConfigBuilder can only be used once.);
}
parsed = true ;
解析配置
/* */
parseConfiguration(parser.evalNode(/configuration));
return configuration;
}
关于配置的功能及使⽤⽅法,请参考官⽅⽂档,地址已经给出。
XMLConfigBuilder:
private void parseConfiguration(XNode root) {
try {
/* 解析properties标签 */
propertiesElement(root.evalNode(properties));
/* 解析settings标签 */
Properties settings = settingsAsProperties(root.evalNode(settings));
/* 设置⾃定义VFS */
loadCustomVfs(settings);
/* 解析typeAliases标签 */
typeAliasesElement(root.evalNode(typeAliases));
/* 解析plugins标签 */
pluginElement(root.evalNode(plugins));
/* 解析objectFactory标签 */
objectFactoryElement(root.evalNode(objectFactory));
/* 解析objectWrapperF
您可能关注的文档
- 2022~2023国家电网招聘考试考试题库及答案解析第130期.pdf
- 2022~2023安全员考试题库及答案参考3.pdf
- 2022~2023演出经纪人考试题库及答案参考32.pdf
- 2022~2023演出经纪人考试题库及答案第697期.pdf
- 2022~2023演出经纪人考试题库及答案第801期.pdf
- 2022~2023演出经纪人考试题库及答案第82期.pdf
- 2022~2023演出经纪人考试题库及答案第936期.pdf
- 2022~2023特种设备作业考试题库及答案参考30.pdf
- 22届心理学测评卷(完整章节)题目+答案解析.pdf
- 22春“中药学”专业《药用植物学》在线作业含答案参考8.pdf
- 中国国家标准 GB/T 15763.1-2025建筑用安全玻璃 第1部分:防火玻璃.pdf
- 《GB/T 15763.1-2025建筑用安全玻璃 第1部分:防火玻璃》.pdf
- 《GB/T 25678-2025印刷机械 卷筒纸平版商业轮转印刷机》.pdf
- GB/T 25678-2025印刷机械 卷筒纸平版商业轮转印刷机.pdf
- 中国国家标准 GB/T 25678-2025印刷机械 卷筒纸平版商业轮转印刷机.pdf
- 中国国家标准 GB/T 18975.1-2025工业自动化系统与集成 流程工厂(包括石油和天然气生产设施)生命周期数据集成 第1部分:综述与基本原理.pdf
- 《GB/T 18975.1-2025工业自动化系统与集成 流程工厂(包括石油和天然气生产设施)生命周期数据集成 第1部分:综述与基本原理》.pdf
- GB/T 18975.1-2025工业自动化系统与集成 流程工厂(包括石油和天然气生产设施)生命周期数据集成 第1部分:综述与基本原理.pdf
- 《GB/T 12221-2025金属阀门 结构长度》.pdf
- GB/T 21681-2025机械压力机、液压机用模拟负荷测试系统.pdf
原创力文档


文档评论(0)