0

最初,我有 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 文件并运行应用程序。

是否有任何其他方法可以最大限度地减少加载时间。我看到 classpath:/.. 是在没有互联网连接时加载 xsd 的唯一选项。有人可以帮我解决这个问题。

4

2 回答 2

2

更多信息schemaLocation可在此处获得:

xmlns如果您使用安装在 Eclipse 中的 Spring IDE,IDE 已经拥有您提供的 s所需的 XSD 的自己的副本。因此,它不需要通过schemaLocation.

于 2012-11-02T09:48:26.213 回答
0

您不必更改架构位置以引用类路径以使其工作;Spring应该在其 jar 文件中嵌入自己的模式文件副本,并且应该使用那些优先连接到 Internet 的模式文件。但是,我注意到您已经在它们的 URL 中指定了确切的模式版本,我的理解是 Spring 只会检查与 spring in use 版本完全匹配的版本化模式。在这种情况下,如果您没有使用 Spring 3.1.x,它不会使用自己的内部版本,而是会尝试下载它。切换到没有版本号(向后兼容)的模式位置,它应该使用其内部缓存。

于 2016-09-23T10:42:51.950 回答