在我们的spring配置中,我们将beans标记放在这样:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
现在Spring必须从我的calsspath中找到文件spring-beans.xsd
&amp;的位置。 spring-context.xsd
。
我在这条路径上找到了一些xsd文件:
弹簧上下文4.1.5.RELEASE.jar /组织/ springframework的/上下文/配置
spring-context-2.5.xsd
spring-context-3.0.xsd
spring-context-3.1.xsd
spring-context-3.2.xsd
spring-context-4.0.xsd
spring-context-4.1.xsd
在搜索spring-beans.xsd文件时,我在此路径中找到了一些文件:
弹簧豆-4.1.5.RELEASE.jar /组织/ springframework的/豆类/工厂/ XML
spring-beans-2.5.xsd
spring-beans-3.0.xsd
spring-beans-3.1.xsd
spring-beans-3.2.xsd
spring-beans-4.0.xsd
spring-beans-4.1.xsd
spring如何知道查找此文件的位置,因为beans
标记中的架构位置与此文件的实际位置之间没有链接。此外,我能够找到类似spring-beans-<version>.xsd
的文件,然后即使我们未在spring-beans.xsd
标记中指定任何版本,春天也会知道<beans>
是什么。
答案 0 :(得分:10)
某些弹簧库包含一些文件,如META-INF/spring.schemas
名为“spring.schemas”的属性文件包含XML的映射 模式位置(与XML中的模式声明一起引用) 将模式用作'xsi:schemaLocation'的一部分的文件 属性)到classpath资源。需要此文件来防止 Spring绝对不得不使用默认的EntityResolver 需要Internet访问才能检索模式文件。如果你指定 在这个属性文件中的映射,Spring将搜索模式 在类路径上
<强> e.g。强>
spring-beans-x.x.x-RELEASE.jar的spring.schemas
http\://www.springframework.org/schema/beans/spring-beans-2.0.xsd=org/springframework/beans/factory/xml/spring-beans-2.0.xsd
http\://www.springframework.org/schema/beans/spring-beans-2.5.xsd=org/springframework/beans/factory/xml/spring-beans-2.5.xsd
http\://www.springframework.org/schema/beans/spring-beans-3.0.xsd=org/springframework/beans/factory/xml/spring-beans-3.0.xsd
http\://www.springframework.org/schema/beans/spring-beans-3.1.xsd=org/springframework/beans/factory/xml/spring-beans-3.1.xsd
http\://www.springframework.org/schema/beans/spring-beans-3.2.xsd=org/springframework/beans/factory/xml/spring-beans-3.2.xsd
http\://www.springframework.org/schema/beans/spring-beans.xsd=org/springframework/beans/factory/xml/spring-beans-3.2.xsd
简而言之,上面的属性允许它将XSD资源映射到schemaLocation属性。