最初,我的appcontext.xml标题如下所示。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.1.xsd">
如果没有互联网连接,这不起作用。因此改变了上面的xsi:schemaLocation,如下所示
xsi:schemaLocation="http://www.springframework.org/schema/beans
classpath:/org/springframework/beans/factory/xml/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
classpath:/org/springframework/context/config/spring-context-3.1.xsd
http://www.springframework.org/schema/util
classpath:/org/springframework/beans/factory/xml/spring-util-3.1.xsd"
上述方法需要很长时间才能加载xsd文件并运行应用程序。
是否有其他方法可以最小化加载所花费的时间。我看到类路径:/ ..是没有互联网连接时加载xsd的唯一选项。有人可以帮我这个。
答案 0 :(得分:2)
有关schemaLocation
的更多信息,请访问:
如果您使用Eclipse中安装的Spring IDE,则IDE已经拥有您自己提供的xmlns
所需的XSD副本。因此,无需通过schemaLocation
。
答案 1 :(得分:0)
您不必更改架构位置以引用类路径以使其工作; Spring 假设拥有自己的jar文件中嵌入的模式文件的副本,假定使用那些优先连接到互联网的文件。但是,我注意到您已经在URL中指定了确切的模式版本,我的理解是Spring只会检查与使用中的spring版本完全匹配的版本化模式。在这种情况下,如果您没有使用Spring 3.1.x,它将不会使用自己的内部版本,而是尝试下载它。切换到不具有版本号(向后兼容)的架构位置,它应使用其内部缓存。