当前位置: 首页 > 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.lryc.cn/news/430054.html

相关文章:

  • 企业级web应用服务器tomcat
  • 深入浅出,探讨IM(即时通讯-聊天工具)技术架构及用户界面设计
  • 小米、友邦带领恒指大反攻!
  • 中国植物性状数据库
  • [数据集][目标检测]街灯路灯检测数据集VOC+YOLO格式1893张1类别
  • C++位运算
  • Day97:云上攻防-云原生篇KubernetesK8s安全APIKubelet未授权访问容器执行
  • 招聘|头部云厂商招 PG 核心骨干 DBA【上海】
  • 继承(下)【C++】
  • AI模拟器
  • 【C++二分查找 前缀和】1658. 将 x 减到 0 的最小操作数
  • 验证实战知识点--(2)
  • 【图文并茂】ant design pro 如何优雅地把删除和批量删除功能合并到一起,并抽出来成为组件
  • 监控篇之利用dcgm-exporter监控GPU指标并集成grafana大盘
  • 获取当前路由器的外网IP(WAN IP)
  • QT Creator UI中文输入跳出英文
  • Java基础核心知识学习笔记
  • Leetcode 237.19.83.82 删除链表重复结点 C++实现
  • Spring OAuth2.0资源服务源码解析
  • JavaScript 原型与原型链
  • Spring Boot实现简单的Oracle数据库操作
  • 微软发布 Phi-3.5 系列模型,涵盖端侧、多模态、MOE;字节 Seed-ASR:自动识别多语言丨 RTE 开发者日报
  • 笔记:Echarts柱状图 实现滚轮条 数据太多
  • 嵌入式学习day17(数据结构)
  • 网站怎么做敏感词过滤,敏感词过滤的思路和实践
  • 【峟思】如何使用投入式水位计才能确保测量准确性
  • 供应链管理系统(SCM) —— 企业物流的智能枢纽
  • 计算机视觉(CV)技术的优势和挑战。
  • 数据库MySQL多表设计、查询
  • 基于vue框架的北城招聘管理平台题目7lly3(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。