首先构造资源文件的实例对象,然后构造BeanFactory。
Spring使用资源界面来打包基础资源。蓄积是从InputStreamsource继承的,Java的InputStreamSource封装了任何可以返回到InputStream的类,例如File,ClassPath等资源等等。只有一种方法。此方法返回一个InputStream对象。
资源界面抽象弹簧中使用的所有基础资源,例如文件,URL,classPath。有相应的资源实现不同来源的资源文件。使用资源接口,所有资源文件都可以统一处理。
XMLBEANFACTORY的初始化方法是:
这是加载资源的真实实施和资源加载的入口。
XMLBEANDEFINITINITINITINERERING GOADING资源的过程可能是:
DTD(文档类型定义)是文档类型定义。这是XML约束模式语言。这是XML文件的验证机制。它属于XML文件的一部分,并由非-XML语言编写。DTD是确保XML文档正确格式的有效方法。您可以通过比较XML文档和DTD文件以及元素和表货币是否正确来检查文档是否符合规范。dtd文档包含:元素的定义规则,元素之间关系的定义规则,属性可以在元素中使用,并且可以使用的物理或符号规则。使用DTD验证模式需要在XML文件的头部声明。春季物种的陈述是
XML模式语言是XSD(XML schemas定义).xml模式描述XML文档的结构。您可以使用指定的XML架构验证特定的XML文档,以检查XML文档是否满足XML Schema.Document Designers.Document Designers.document Designers。通过XML架构指定XML文档允许的结构和内容,并可以检查XML文档是否根据此.xml模式本身是XML文档。它符合XML的语法结构,可以用一般的XML解析器解析。
XML实例文档通过XML模式文档进行验证。除了名称space()之外,您还必须指定与名称space相对应的XML模式文档存储的位置。指定通过schemalocation属性对应于名称空间的XML模式文档的存储位置。它包含两个部分,一个是名称空间的URI,另一个是XML架构文件位置或名称space()的URI地址
这是XMLBEANDEFINITIONREADER类中的一种方法。此方法将使用XML文件加载XML文件。该方法的第四参数是XML的验证模式。
如果没有指定的XML验证模式,则将获得该方法。此方法是在XMLBEANDEFINITIONINICINICINITIONREEDER中,主要是为了获得InputStream,然后调用XMlValideionModector的方法以获得验证模式。
Spring使用测试验证模式的方法来确定它是否包含Doctype。如果包含DTD,则为XSD。
真正将资源转换为文档的方法是在DefaultDocumentLoader的方法中实现的。首先创建一个文档builderFactory,然后通过documentBuilderFactory创建文档builder,然后分析InputSource以返回文档对象。
将文档转换为文档后,将其提取并注册为BEAN。
在DefaultBeanDefinItocumentReader类中输入registerBeanDefinitions()方法。此方法实际上调用该方法,然后将其传递到doc.getDocumentedElement()中。
配置文件属性部署在配置文件中,以将两组配置部署到生产环境和开发环境中,这可以促进开关,开发和部署环境。分析配置文件的过程是:首先获得bean节点是否定义配置文件是否定义配置文件属性。如果定义了它,将在环境变量中找到,因此将被判断为第一分裂并分析在环境变量中定义的每个属性,而性能分析并未浪费不令人满意。
弹簧的XML配置在配置中通过两类BEAN声明。一个是默认值,另一个是自定义的,例如。
如果根节点或子节点默认命名space,则分析parsedefaultelemelemt()方法,否则使用delegate.parsecustomelement(root)方法来分析自定义的命名空间。是判断默认命名空间还是定制的方法命名空间是使用node.getnamespaceuri()获取名称空间,然后比较弹簧中固定的命名空间。
parsebeandefinionions()方法分析bean并根据上述逻辑进行处理
原始:https://juejin.cn/post/7100221906007097381