xmlns定义在spring配置文件中有何不同

时间:2012-07-23 10:31:23

标签: spring spring-mvc

学习Spring我在spring配置文件中找到了两种类型的xmlns定义。 一个从此开始:

 <beans xmlns="http://www.springframework.org/schema/beans"

我在春天找到documentation

另一个从这开始:

 <beans:beans  xmlns="http://www.springframework.org/schema/mvc"

两者都很好。我观察到的一个区别是,如果使用第二个定义,则必须使用名称bean启动所有标记,如下所示:

<beans:import resource="hibernate-context.xml" /> 

否则可以写成

 <import resource="hibernate-context.xml" />

他们有什么主要区别?

1 个答案:

答案 0 :(得分:5)

这不是Spring特有的,而是更多关于XML和命名空间的内容 - 参考文献在这里:http://www.w3schools.com/xml/xml_namespaces.asphttp://en.wikipedia.org/wiki/XML_namespace

总结一下: 首先是

<beans xmlns="http://www.springframework.org/schema/beans"

使beans模式成为此xml文件的缺省模式,这将允许引用此bean模式中没有名称空间前缀的元素。那么这个模式定义在哪里 - 模式的引用通常包含在schemaLocations属性中,如下所示 -

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd" 

上述内容是http://www.springframework.org/schema/beans的定义出现在相应的.xsd文件中

在你的第二个例子中 -

<beans:beans  xmlns="http://www.springframework.org/schema/mvc" xmlns:beans="http://www.springframework.org/schema/beans"

您现在将mvc名称空间定义为默认名称空间,因此在这种情况下,可以引用mvc模式中的任何元素而不使用任何前缀,但是如果要引用bean模式中的任何元素,则必须使用beans:前缀来引用它,例如样本中的beans:import