Spring 3.0.5 Release 版在 2010-10-20 悄然发布,真正支持了 Hibernate 3.6 Final。在常去的几个网站都没看到相关信息,而且在 Spring 的官方网站上也是小声细作,好不容易才翻出一个 changelog 出来:http://static.springsource.org/spring/docs/3.0.x/changelog.txt。
假如你是用 Ivy 管理依赖,请添加:
<dependency org="org.springframework" name="org.springframework.core" rev="3.0.5.RELEASE" />
用 Maven 管理依赖的话,pom.xml 加:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>org.springframework.core</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
还有作为 OSGI Bundle 的引入方式,MANIFEST.MF 中:
Import-Bundle: org.springframework.core;version="[3.0.5.RELEASE,3.0.5.RELEASE]"
为何我对该版本如此关注呢?主要是原来在使用 Spring 3.0.4 MVC 的
<mvc:resources location="/" mapping="/resources/**"/>
<!-- Allows for mapping the DispatcherServlet to "/" by forwarding static resource requests to the container's default Servlet -->
<mvc:default-servlet-handler/>
时,会收到像:
cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'mvc:resources'. webmvc-config.xml /UnmiTest/src/main/webapp/WEB-INF/spring line 17 XML Problem
cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'mvc:default-servlet-handler'. webmvc-config.xml /UnmiTest/src/main/webapp/WEB-INF/spring line 20 XML Problem
这样的错误,或者是这样的提示:
Caused by: org.xml.sax.SAXParseException: The prefix "mvc" for element "mvc:resources" is not bound.
at com.sun.org.apache.xerces.internal.util.ErrorHandl erWrapper.createSAXParseException(ErrorHandlerWrap per.java:195)
反正都是一样的原因,就是配置文件所用到的 xsd 文件 http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 里没有相应的元素声明,所以用 Spring 3.0.4 时不得不从 jar 中抽出 spring-mvc-3.0.xsd 放在本地的某个目录中,但还是可能会冒出问题来。
现在好了,http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 文件已经得到了更新,resources 和 default-servlet-handler 元素已经添加进来了。
<xsd:element name="resources">
<xsd:element name="default-servlet-handler">
现在那两个标记也就可以放心使用了,可以扔开 UrlRewrite 了吧。
本文链接 https://yanbin.blog/spring-3-0-5-release/, 来自 隔叶黄莺 Yanbin Blog
[版权声明] 本文采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。