org.springframework.web.servlet.config.annotation

## Class PathMatchConfigurer

- java.lang.Object
- - org.springframework.web.servlet.config.annotation.PathMatchConfigurer

-     public class PathMatchConfigurer
      extends Object

  Configure path matching options. The options are applied to the following:
  - `WebMvcConfigurationSupport.requestMappingHandlerMapping(org.springframework.web.accept.ContentNegotiationManager, org.springframework.format.support.FormattingConversionService, org.springframework.web.servlet.resource.ResourceUrlProvider)`
  - `WebMvcConfigurationSupport.viewControllerHandlerMapping(org.springframework.format.support.FormattingConversionService, org.springframework.web.servlet.resource.ResourceUrlProvider)`
  - `WebMvcConfigurationSupport.resourceHandlerMapping(org.springframework.web.accept.ContentNegotiationManager, org.springframework.format.support.FormattingConversionService, org.springframework.web.servlet.resource.ResourceUrlProvider)`
  Since:
    4.0.3
  Author:
    Brian Clozel

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PathMatchConfigurer()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `PathMatchConfigurer` | `addPathPrefix(String prefix, Predicate<Class<?>> predicate)` Configure a path prefix to apply to matching controller methods.
    `PathMatcher` | `getPathMatcher()`
    `protected PathMatcher` | `getPathMatcherOrDefault()` Return the configured PathMatcher or a default, shared instance otherwise.
    `protected Map<String,Predicate<Class<?>>>` | `getPathPrefixes()`
    `PathPatternParser` | `getPatternParser()` Return the `PathPatternParser` to use, if configured.
    `PathPatternParser` | `getPatternParserOrDefault()` Return the configured PathPatternParser or a default, shared instance otherwise.
    `UrlPathHelper` | `getUrlPathHelper()`
    `protected UrlPathHelper` | `getUrlPathHelperOrDefault()` Return the configured UrlPathHelper or a default, shared instance otherwise.
    `Boolean` | `isUseRegisteredSuffixPatternMatch()` Deprecated. as of 5.2.4, see deprecation note on `setUseRegisteredSuffixPatternMatch(Boolean)`.
    `Boolean` | `isUseSuffixPatternMatch()` Deprecated. as of 5.2.4, see deprecation note on `setUseSuffixPatternMatch(Boolean)`.
    `Boolean` | `isUseTrailingSlashMatch()` Deprecated.
    `PathMatchConfigurer` | `setPathMatcher(PathMatcher pathMatcher)` Set the PathMatcher to use for String pattern matching.
    `PathMatchConfigurer` | `setPatternParser(PathPatternParser patternParser)` Enable use of parsed `PathPattern`s as described in `AbstractHandlerMapping.setPatternParser(PathPatternParser)`.
    `PathMatchConfigurer` | `setUrlPathHelper(UrlPathHelper urlPathHelper)` Set the UrlPathHelper to use to resolve the mapping path for the application.
    `PathMatchConfigurer` | `setUseRegisteredSuffixPatternMatch(Boolean registeredSuffixPatternMatch)` Deprecated. as of 5.2.4. See class-level note in `RequestMappingHandlerMapping` on the deprecation of path extension config options.
    `PathMatchConfigurer` | `setUseSuffixPatternMatch(Boolean suffixPatternMatch)` Deprecated. as of 5.2.4. See class-level note in `RequestMappingHandlerMapping` on the deprecation of path extension config options. As there is no replacement for this method, in 5.2.x it is necessary to set it to `false`. In 5.3 the default changes to `false` and use of this property becomes unnecessary.
    `PathMatchConfigurer` | `setUseTrailingSlashMatch(Boolean trailingSlashMatch)` Whether to match to URLs irrespective of the presence of a trailing slash.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PathMatchConfigurer

          public PathMatchConfigurer()

  - ### Method Detail

    - #### setPatternParser

          public PathMatchConfigurer setPatternParser(PathPatternParser patternParser)

      Enable use of parsed `PathPattern`s as described in `AbstractHandlerMapping.setPatternParser(PathPatternParser)`.

      Note: This is mutually exclusive with use of `setUrlPathHelper(UrlPathHelper)` and `setPathMatcher(PathMatcher)`.

      By default this is not enabled.

      Parameters:
        `patternParser` - the parser to pre-parse patterns with
      Since:
        5.3

    - #### setUseTrailingSlashMatch

          public PathMatchConfigurer setUseTrailingSlashMatch(Boolean trailingSlashMatch)

      Whether to match to URLs irrespective of the presence of a trailing slash. If enabled a method mapped to "/users" also matches to "/users/".

      The default value is `true`.

    - #### addPathPrefix

          public PathMatchConfigurer addPathPrefix(String prefix,
                                                   Predicate<Class<?>> predicate)

      Configure a path prefix to apply to matching controller methods.

      Prefixes are used to enrich the mappings of every `@RequestMapping` method whose controller type is matched by the corresponding `Predicate`. The prefix for the first matching predicate is used.

      Consider using `HandlerTypePredicate` to group controllers.

      Parameters:
        `prefix` - the prefix to apply
        `predicate` - a predicate for matching controller types
      Since:
        5.1

    - #### setUseSuffixPatternMatch

          @Deprecated
          public PathMatchConfigurer setUseSuffixPatternMatch(Boolean suffixPatternMatch)

      Deprecated. as of 5.2.4. See class-level note in `RequestMappingHandlerMapping` on the deprecation of path extension config options. As there is no replacement for this method, in 5.2.x it is necessary to set it to `false`. In 5.3 the default changes to `false` and use of this property becomes unnecessary.
      Whether to use suffix pattern match (".*") when matching patterns to requests. If enabled a method mapped to "/users" also matches to "/users.*".

      By default this is set to `false`.

      Note: This property is mutually exclusive with and ignored when `setPatternParser(PathPatternParser)` is set.

    - #### setUseRegisteredSuffixPatternMatch

          @Deprecated
          public PathMatchConfigurer setUseRegisteredSuffixPatternMatch(Boolean registeredSuffixPatternMatch)

      Deprecated. as of 5.2.4. See class-level note in `RequestMappingHandlerMapping` on the deprecation of path extension config options.
      Whether suffix pattern matching should work only against path extensions explicitly registered when you `configure content negotiation`. This is generally recommended to reduce ambiguity and to avoid issues such as when a "." appears in the path for other reasons.

      By default this is set to "false".

      Note: This property is mutually exclusive with and ignored when `setPatternParser(PathPatternParser)` is set.

    - #### setUrlPathHelper

          public PathMatchConfigurer setUrlPathHelper(UrlPathHelper urlPathHelper)

      Set the UrlPathHelper to use to resolve the mapping path for the application.

      Note: This property is mutually exclusive with and ignored when `setPatternParser(PathPatternParser)` is set.

    - #### setPathMatcher

          public PathMatchConfigurer setPathMatcher(PathMatcher pathMatcher)

      Set the PathMatcher to use for String pattern matching.

      By default this is `AntPathMatcher`.

      Note: This property is mutually exclusive with and ignored when `setPatternParser(PathPatternParser)` is set.

    - #### getPatternParser

          @Nullable
          public PathPatternParser getPatternParser()

      Return the `PathPatternParser` to use, if configured.
      Since:
        5.3

    - #### isUseTrailingSlashMatch

          @Nullable
           @Deprecated
          public Boolean isUseTrailingSlashMatch()

      Deprecated.

    - #### getPathPrefixes

          @Nullable
          protected Map<String,Predicate<Class<?>>> getPathPrefixes()

    - #### isUseRegisteredSuffixPatternMatch

          @Nullable
           @Deprecated
          public Boolean isUseRegisteredSuffixPatternMatch()

      Deprecated. as of 5.2.4, see deprecation note on `setUseRegisteredSuffixPatternMatch(Boolean)`.
      Whether to use registered suffixes for pattern matching.

    - #### isUseSuffixPatternMatch

          @Nullable
           @Deprecated
          public Boolean isUseSuffixPatternMatch()

      Deprecated. as of 5.2.4, see deprecation note on `setUseSuffixPatternMatch(Boolean)`.
      Whether to use registered suffixes for pattern matching.

    - #### getUrlPathHelper

          @Nullable
          public UrlPathHelper getUrlPathHelper()

    - #### getPathMatcher

          @Nullable
          public PathMatcher getPathMatcher()

    - #### getUrlPathHelperOrDefault

          protected UrlPathHelper getUrlPathHelperOrDefault()

      Return the configured UrlPathHelper or a default, shared instance otherwise.
      Since:
        5.3

    - #### getPathMatcherOrDefault

          protected PathMatcher getPathMatcherOrDefault()

      Return the configured PathMatcher or a default, shared instance otherwise.
      Since:
        5.3

    - #### getPatternParserOrDefault

          public PathPatternParser getPatternParserOrDefault()

      Return the configured PathPatternParser or a default, shared instance otherwise.
      Since:
        5.3.4