Class DefaultUriBuilderFactory

java.lang.Object
org.springframework.web.util.DefaultUriBuilderFactory
All Implemented Interfaces:
UriBuilderFactory, UriTemplateHandler

public class DefaultUriBuilderFactory extends Object implements UriBuilderFactory
UriBuilderFactory that relies on UriComponentsBuilder for the actual building of the URI.

Provides options to create UriBuilder instances with a common base URI, alternative encoding mode strategies, among others.

Since:
5.0
Author:
Rossen Stoyanchev
See Also:
  • Constructor Details

  • Method Details

    • hasBaseUri

      public final boolean hasBaseUri()
      Determine whether this factory has been configured with a base URI.
      Since:
      6.1.4
      See Also:
    • setEncodingMode

      public void setEncodingMode(DefaultUriBuilderFactory.EncodingMode encodingMode)
      Set the encoding mode to use.

      By default this is set to EncodingMode.TEMPLATE_AND_VALUES.

      Note: Prior to 5.1 the default was EncodingMode.URI_COMPONENT therefore the WebClient RestTemplate have switched their default behavior.

      Parameters:
      encodingMode - the encoding mode to use
    • getEncodingMode

      public DefaultUriBuilderFactory.EncodingMode getEncodingMode()
      Return the configured encoding mode.
    • setDefaultUriVariables

      public void setDefaultUriVariables(@Nullable Map<String,?> defaultUriVariables)
      Provide default URI variable values to use when expanding URI templates with a Map of variables.
      Parameters:
      defaultUriVariables - default URI variable values
    • getDefaultUriVariables

      public Map<String,?> getDefaultUriVariables()
      Return the configured default URI variable values.
    • setParsePath

      public void setParsePath(boolean parsePath)
      Whether to parse the input path into path segments if the encoding mode is set to EncodingMode.URI_COMPONENT, which ensures that URI variables in the path are encoded according to path segment rules and for example a '/' is encoded.

      By default this is set to true.

      Parameters:
      parsePath - whether to parse the path into path segments
    • shouldParsePath

      public boolean shouldParsePath()
      Whether to parse the path into path segments if the encoding mode is set to EncodingMode.URI_COMPONENT.
    • expand

      public URI expand(String uriTemplate, Map<String,?> uriVars)
      Description copied from interface: UriTemplateHandler
      Expand the given URI template with a map of URI variables.
      Specified by:
      expand in interface UriTemplateHandler
      Parameters:
      uriTemplate - the URI template
      uriVars - variable values
      Returns:
      the created URI instance
    • expand

      public URI expand(String uriTemplate, Object... uriVars)
      Description copied from interface: UriTemplateHandler
      Expand the given URI template with an array of URI variables.
      Specified by:
      expand in interface UriTemplateHandler
      Parameters:
      uriTemplate - the URI template
      uriVars - variable values
      Returns:
      the created URI instance
    • uriString

      public UriBuilder uriString(String uriTemplate)
      Description copied from interface: UriBuilderFactory
      Initialize a builder with the given URI template.
      Specified by:
      uriString in interface UriBuilderFactory
      Parameters:
      uriTemplate - the URI template to use
      Returns:
      the builder instance
    • builder

      public UriBuilder builder()
      Description copied from interface: UriBuilderFactory
      Create a URI builder with default settings.
      Specified by:
      builder in interface UriBuilderFactory
      Returns:
      the builder instance