当前位置: 首页 > news >正文

MyBatis源码系列3(解析配置文件,创建SqlSessionFactory对象)

创建SqlSessionFactory; 首先读取配置文件,使用构造者模式创建SqlSessionFactory对象。

  InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

创建SqlSessionFactory 时序图。
在这里插入图片描述核心:解析xml配置文件,解析的配置文件用Configuration对象保存。

解析配置文件核心步骤:

//从根节点解析
parseConfiguration(parser.evalNode("/configuration"));
private void parseConfiguration(XNode root) {try {//issue #117 read properties firstpropertiesElement(root.evalNode("properties"));//设置Properties settings = settingsAsProperties(root.evalNode("settings"));loadCustomVfs(settings);//自定义别名typeAliasesElement(root.evalNode("typeAliases"));//拦截器pluginElement(root.evalNode("plugins"));objectFactoryElement(root.evalNode("objectFactory"));objectWrapperFactoryElement(root.evalNode("objectWrapperFactory"));reflectorFactoryElement(root.evalNode("reflectorFactory"));settingsElement(settings);// read it after objectFactory and objectWrapperFactory issue #631environmentsElement(root.evalNode("environments"));databaseIdProviderElement(root.evalNode("databaseIdProvider"));//自定义数据类型转换器typeHandlerElement(root.evalNode("typeHandlers"));//解析mapper  重要mapperElement(root.evalNode("mappers"));} catch (Exception e) {throw new BuilderException("Error parsing SQL Mapper Configuration. Cause: " + e, e);}}

解析顺序与配置文件中的设置信息完全一致。
在这里插入图片描述
Configuration对象几个主要的属性:
在这里插入图片描述


http://www.mrgr.cn/news/3342.html

相关文章:

  • 靶机:DC-4
  • 设计模式系列:策略模式的设计与实践
  • C#用户控件usercontrol中的子控件事件及属性的传递
  • 有哪些方法可以查看服务器是否配置了RAID?
  • IP in IP 协议
  • Qt QTextEdit调用append数据重复的问题
  • M-Fedya and Array(cf1793)
  • avalonia学习之按钮
  • Python爬虫图片:从入门到精通
  • startData
  • RabbitMQ与ElasticSearch面试
  • 5IUX极简主页搜索源码/自定义你的浏览器主页
  • Rust: 技术介绍
  • 【设计模式反模式:UML图示有那些常见误用?】
  • 计算机毕业设计选题推荐-养老院管理系统-Java/Python项目实战
  • 用户体验的优化:观测云在用户行为分析中的应用
  • wireshark启动之后找不到本地接口问题
  • 智慧楼宇公厕系统小程序,提高卫生间管理使用效率
  • Golang | Leetcode Golang题解之第343题整数拆分
  • wsl2安装ebpf教程