Browse Source
Prior to this commit, the MVC namespace for the XML Spring configuration model would use the `PathMatcher` bean instance when provided like this: ``` <bean id="pathMatcher" class="org.springframework.util.AntPathMatcher"/> <mvc:annotation-driven> <mvc:path-matching path-matcher="pathMatcher"/> </mvc:annotation-driven> <mvc:resources mapping="/resources/**" location="classpath:/static/"/> ``` With this configuration, the handler mapping for annotated controller would use the given `AntPathMatcher` instance but the handler mapping for resources would still use the default, which is `PathPatternParser` since 6.0. This commit ensures that when a custom `path-matcher` is defined, it's consistently used for all MVC handler mappings as an alias to the well-known bean name. This allows to use `AntPathMatcher` consistently while working on a migration path to `PathPatternParser` This commit also adds a new XML attribute to the path matching configuration that makes it possible to use a custom `PathPatternParser` instance: ``` <bean id="patternParser" class="org.springframework.web.util.pattern.PathPatternParser"/> <mvc:annotation-driven> <mvc:path-matching pattern-parser="patternParser"/> </mvc:annotation-driven> ``` Closes gh-34102 See gh-340646.1.x
9 changed files with 176 additions and 21 deletions
@ -0,0 +1,17 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<beans xmlns="http://www.springframework.org/schema/beans" |
||||||
|
xmlns:mvc="http://www.springframework.org/schema/mvc" |
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||||
|
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd |
||||||
|
http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"> |
||||||
|
|
||||||
|
<bean id="patternParser" class="org.springframework.web.util.pattern.PathPatternParser"/> |
||||||
|
|
||||||
|
<mvc:annotation-driven> |
||||||
|
<mvc:path-matching pattern-parser="patternParser"/> |
||||||
|
</mvc:annotation-driven> |
||||||
|
|
||||||
|
<mvc:view-controller path="/foo"/> |
||||||
|
<mvc:resources mapping="/resources/**" location="/, classpath:/META-INF/"/> |
||||||
|
|
||||||
|
</beans> |
||||||
@ -0,0 +1,17 @@ |
|||||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||||
|
<beans xmlns="http://www.springframework.org/schema/beans" |
||||||
|
xmlns:mvc="http://www.springframework.org/schema/mvc" |
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
||||||
|
xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd |
||||||
|
http://www.springframework.org/schema/mvc https://www.springframework.org/schema/mvc/spring-mvc.xsd"> |
||||||
|
|
||||||
|
<bean id="pathMatcher" class="org.springframework.util.AntPathMatcher"/> |
||||||
|
|
||||||
|
<mvc:annotation-driven> |
||||||
|
<mvc:path-matching path-matcher="pathMatcher"/> |
||||||
|
</mvc:annotation-driven> |
||||||
|
|
||||||
|
<mvc:view-controller path="/foo"/> |
||||||
|
<mvc:resources mapping="/resources/**" location="/, classpath:/META-INF/"/> |
||||||
|
|
||||||
|
</beans> |
||||||
Loading…
Reference in new issue