spring源码解读(一) —— xml头文件的作用

Spring的核心功能之一就是IOC,也就是一个容器管理功能,那么我们怎么将我们定义的bean注入的Spring容器中,spring中,提供了xml文档,我们将我们的bean定义在xml中,spring中就可以管理我们的对应,xml定义如下:




    
    

今天我们先不看bean,而是关注在为什么我们的xml中的头文件,为什么要怎么定义,它到底有何作用。

一、DTD和XSD

DTD(Document Type Definition):文档类型定义,是一种xml约束模式语言,是xml文件验证机制,属于xml文件组成的一部分。简单说,DTD可以帮助我们验证我们的xml是否是按照要求来写的。

一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。在主要在mapper的生命中使用这中格式,格式如下:


XSD(XML Schemas Definition):和DTD类似,描述了xml文档的结构,可以用来验证xml是否是正确格式。其格式如下:


public static void main(String[] args) {
        XmlBeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactory.xml"));
        MyTestBean bean = (MyTestBean)bf.getBean("myTestBean");
        System.out.println(bean.getTestStr());
    }

其中getValidationModeForResource这个方法就是验证我们的xml文件是否是符合书写要求的,进入方法可以看到:

spring源码解读(一) —— xml头文件的作用_第1张图片

这里主要是判断是手动验证还是自动验证,因为我们这里并没有进行手动设置所以是走到了自动验证逻辑中,再次进入自动验证的代码,如下:

 这里主要就是验证我们的xml是DTD,还是XSD,DTD返回2,XSD返回3,那么spring中是怎么进行判断的其实就是根据hasDocType这个方法,来判断的,主要xml文件中包含DOCTYPE,就是DTD格式,不包含就是XSD

spring源码解读(一) —— xml头文件的作用_第2张图片

所以spring就会根据我们定义的xml文件类型,来加载对应的xml文件,具体的加载内容,我们下篇文章继续讲解。 

你可能感兴趣的:(spring)