学习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" />
他们有什么主要区别?
答案 0 :(得分:5)
这不是Spring特有的,而是更多关于XML和命名空间的内容 - 参考文献在这里:http://www.w3schools.com/xml/xml_namespaces.asp,http://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