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

6.Spring源码解析-loadBeanDefinitions(String location)

image.png
image.png
这里resourceLoader其实就是ClassPathXmlApplicationContext
1.ClassPathXmlApplicationContext
在上文中图例就能看出来
image.png
获取资源组可能存在多个bean.xml

image.png
循环单独加载资源组
image.png
image.png
image.png
image.png
创建一个编码资源并解析
image.png
获取当前正在加载的资源发现是空
image.png
image.png
创建了一个字节输入流,继续解析
image.png
委托给Document并加载Document类。
image.png
注册beanBeanDefinitions
image.png
image.png
image.png
image.png
上图131行判断是不是默认的命名空间即:http://www.springframework.org/schema/beans
image.png
很显然profile属性是空。
delegate的作用在于处理beans标签的嵌套,其实Spring配置文件是可以写成这样的:

<?xml version="1.0" encoding="UTF-8"?>    
<beans>    <bean class="base.SimpleBean"></bean><beans><bean class="java.lang.Object"></bean></beans>
</beans>

xml(schema)的命名空间其实类似于java的报名,命名空间采用URL,比如Spring的是这样:

<?xml version="1.0" encoding="UTF-8"?>    
<beans xmlns="http://www.springframework.org/schema/beans"></beans>

xmlns属性就是xml规范定义的用来设置命名空间的。这样设置了之后其实里面的bean元素全名就相当于http://www.springframework.org/schema/beans:bean,可以有效的防止命名冲突。命名空间可以通过规范定义的org.w3c.dom.Node.getNamespaceURI方法获得。

image.png
预处理xml,点进去发现是空
image.png

image.png
解析beandefinitions和后处理xml后续继续说。

相关文章:

  • 利用Python爬虫爬取豆瓣电影排名信息
  • Unity 注释的方法
  • Android 获取应用签名
  • 32/64位系统下使用ATT风格汇编调用c函数
  • C语言--每日选择题--Day31
  • 使用yolov7进行多图像视频识别
  • 使用Docker Compose搭建CIG监控平台
  • JSON非常慢:这里有更快的替代方案
  • 20 Go的命令行参数
  • Springboot如何快速生成分页展示以及统计条数
  • C语言猜数字小游戏
  • Centos 7 环境下 PostgreSQL 14 启用SSL加密
  • windows11 phpstudy_pro php8.2 安装redis扩展
  • 稳定的音频来了 — 使用人工智能创作音乐(for free)
  • 【数据库】数据库并发控制的冲突检测,冲突可串行化的调度,保障事务的特性
  • HTML中设置input等文本框为不可操作
  • Java程序员幽默爆笑锦集
  • Java精华积累:初学者都应该搞懂的问题
  • Java小白进阶笔记(3)-初级面向对象
  • react-native 安卓真机环境搭建
  • webpack入门学习手记(二)
  • 初识MongoDB分片
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 小试R空间处理新库sf
  • ​马来语翻译中文去哪比较好?
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • #预处理和函数的对比以及条件编译
  • (C语言)fread与fwrite详解
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (四) Graphivz 颜色选择
  • (一)kafka实战——kafka源码编译启动
  • (转)fock函数详解
  • .bat文件调用java类的main方法
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NetCore项目nginx发布
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • @javax.ws.rs Webservice注解
  • [ 攻防演练演示篇 ] 利用通达OA 文件上传漏洞上传webshell获取主机权限
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [C#] 基于 yield 语句的迭代器逻辑懒执行
  • [HDOJ4911]Inversion
  • [hdu1561] The more, The Better 【树形DP】
  • [HUBUCTF 2022 新生赛]
  • [LeetCode] 197. 上升的温度
  • [LeetCode] Verify Preorder Sequence in Binary Search Tree 验证二叉搜索树的先序序列
  • [LeetCode]Spiral Matrix
  • [LOJ#6259]「CodePlus 2017 12 月赛」白金元首与独舞
  • [Noi2015]程序自动分析
  • [one_demo_6]逆置整数
  • [Redis]Redis的数据类型
  • [Spring boot] Spring boot 实现Excel批量导入数据并将文件保存到本地
  • [SpringBoot笔记] SpringBoot-01-快速入门案例