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-34064pull/34398/head
9 changed files with 176 additions and 21 deletions
@ -0,0 +1,17 @@
@@ -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 @@
@@ -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