本文介绍: 上图131行判断是不是默认的命名空间即:http://www.springframework.org/schema/beans。xmlns属性就是xml规范定义用来设置命名空间的。这样设置了之后其实里面的bean元素全名就相当于。解析beandefinitions和后处理xml后续继续说。委托给Document并加载Document类。获取资源组可能存在多个bean.xml。获取当前正在加载资源发现是空。创建了一个字节输入流,继续解析。预处理xml,点进去发现是空。创建一个编码资源解析

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后续继续说。

原文地址:https://blog.csdn.net/qq_36649893/article/details/134596066

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_1038.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注