spring的xml配置文件的xml文件头详解

spring的xml配置文件的xml文件头详解,第1张

在spring的xml配置文件中,在头部会出现如下的东西

这些奇怪的xmlns和很长的url的作用是什么呢?

首先,介绍一下 xmlns 的作用,如下所示,一个 xml 文档中如果包含如下两种定义不同, 但是名称相同的元素, xml 解析器是无法解析的, 因为它不能确定当你调用document.getElementsByTagName("book") 时应该返回哪个元素。

这时候可以通过在名称增加前缀解决这个问题

由此,引入一个概念 命名空间 ,通过增加前缀表示不同的那是不同命名空间下的table,从而解决了矛盾,但是不同的人都有自己创建的不同的命名空间来描述同样的东西,不利于xml文件信息的解析,比如说,同样都是水果,可以从颜色和香味不同角度来定义成如下两种形式:

为此,w3c(万维网联盟)对于一些类型,定义了对应的命名空间和这些类型的标准,xml解释器碰到这些类型的时候就会通过这些标准去解析这类型的标签,为了确保命名空间的唯一,所以不同的命名空间的通常使用URL作为被识别的id,如下例子:

这句话的作用是当前引入了一个叫做xsi的命名空间,xsi可以在接下来要使用该命名空间时所使用的,如下:

而 http://www.w3.org/2001/XMLSchema-instance 这个很长的字符串,则是xsi这个名称空间被xml解释器内部所识别的时候所真正使用的id,但也本身只是被当做一个字符串名字去处理,xml解释器根据这个id去获取它对应的标准,从而知道这个命名空间定义有什么样的标签(xml解释器自带有一些通用的命名空间的标准),这个字符串虽然看起来是URL,但是和对应的网页上的信息没有关系,只是用来提供命名空间 唯一性 的作用,网址有时可以被打开,上面会有关于该命名空间的信息。

所以,spring配置文件中这三句话分别表示,引入了三个命名空间。

其中第一个xmlns后面没有空间名的,表示引入了一个默认的名称空间,下文中不使用命名空间前缀的都默认使用这个命名空间,这个默认的命名空间,其真正的id是 " http://www.springframework.org/schema/beans "

引入的第二个命名空间叫做xsi,其真正的id是 " http://www.w3.org/2001/XMLSchema-instance "

引入的第三个命名空间叫做context,其真正的id是 " http://www.springframework.org/schema/context "

在最后可以看到xsi:schemaLocation,这句话的意思表示使用命名空间xsi下的schemaLocatioin,设置了它对应的值为后面很多很多的URL,schemaLocation中存储的值每两个为一组, 第一个代表命名空间,第二个代表该命名空间的标准的文件位置 ,如下所示,这句话就是说明命名空间 http://www.springframework.org/schema/beans 的标准文件是 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd *

因为xml解释器不一定含有所有命名空间的标准,通过这样设置就可以告诉xml解释器不同命名空间的对应的标准是什么了,而这也是xsi这个命名空间的作用,要用到其schemaLocation。

最后,对应一般的xml解释器的工作流程中,xml解释器识别到有 “ http://www.w3.org/2001/XMLSchema-instance " 这个通用的名称空间后,明白知道要引入一些不同命名空间,就会从其schemaLocation中获取不同命名空间和其对应的标准。

头文件导入,配置就可以支持某些功能。

导入beans,就可以使用IOC,<bean id="" class=""></bean>,具体了解Spring有哪些模块。

导入aop,就可以使用<aop:xxxx>开头的。

具体看你配置文件内用到什么模块而导入什么。

对于大多数的应用,从表现层的action,到持久层的DataSource,都被Spring 作为

bean 管理。如果这些bean 被配置在同一个文件中,阅读及维护该配置文件将是一件非

常有挑战的事情。

因此, Spring 建议:将一个大的配置文件分解成多个小的配置文件,使每个配置文

件仅仅管理功能近似于bean这样不仅可以分散配置文件,降低修改配置文件的风险,

而且更符合"分而治之"的软件工程原理。

多个配置文件最终需要汇总, ApplicationContext提供如下方式来汇总多个配置文件:

.使用App1icationContext 加载多个配置文件。

• Web 应用启动时加载多个配置文件。

• XML 配置文件中导入其他配置。

1 ApplicationContext 加载多个配置文件

ApplicatonContext 的常用实现类有如下两个:

• ClassPathXm1 ApplicationContext 。

• FileSystemXm1ApplicationContext 。

这两个类都可以用来加载多个配置文件,它们的构造器都可以接收一个数组,并在

该数组中存放多个配置文件。ClassPathXm1ApplicationContext 可采用如下代码加载多个

配置文件:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11661162.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存