Class DefaultUriBuilderFactory
- All Implemented Interfaces:
UriBuilderFactory
,UriTemplateHandler
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:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
Enum to represent multiple URI encoding strategies. -
Constructor Summary
ConstructorDescriptionDefault constructor without a base URI.DefaultUriBuilderFactory
(String baseUriTemplate) Constructor with a base URI.Variant ofDefaultUriBuilderFactory(String)
with aUriComponentsBuilder
. -
Method Summary
Modifier and TypeMethodDescriptionbuilder()
Create a URI builder with default settings.Expand the given URI template with an array of URI variables.Expand the given URI template with a map of URI variables.Return the configured default URI variable values.Return the configured encoding mode.Return the configured parser type.final boolean
Determine whether this factory has been configured with a base URI.void
setDefaultUriVariables
(Map<String, ?> defaultUriVariables) Provide default URI variable values to use when expanding URI templates with a Map of variables.void
setEncodingMode
(DefaultUriBuilderFactory.EncodingMode encodingMode) Set theencoding mode
to use.void
setParsePath
(boolean parsePath) Whether to parse the input path into path segments if the encoding mode is set toEncodingMode.URI_COMPONENT
, which ensures that URI variables in the path are encoded according to path segment rules and for example a '/' is encoded.void
setParserType
(UriComponentsBuilder.ParserType parserType) Set theUriComponentsBuilder.ParserType
to use.boolean
Whether to parse the path into path segments if the encoding mode is set toEncodingMode.URI_COMPONENT
.Initialize a builder with the given URI template.
-
Constructor Details
-
DefaultUriBuilderFactory
public DefaultUriBuilderFactory()Default constructor without a base URI.The target address must be specified on each UriBuilder.
-
DefaultUriBuilderFactory
Constructor with a base URI.The given URI template is parsed via
UriComponentsBuilder.fromUriString(java.lang.String)
and then applied as a base URI to every UriBuilder viaUriComponentsBuilder.uriComponents(org.springframework.web.util.UriComponents)
unless the UriBuilder itself was created with a URI template that already has a target address.- Parameters:
baseUriTemplate
- the URI template to use a base URL
-
DefaultUriBuilderFactory
Variant ofDefaultUriBuilderFactory(String)
with aUriComponentsBuilder
.
-
-
Method Details
-
hasBaseUri
public final boolean hasBaseUri()Determine whether this factory has been configured with a base URI.- Since:
- 6.1.4
- See Also:
-
setParserType
Set theUriComponentsBuilder.ParserType
to use.By default,
UriComponentsBuilder
uses theparser type
.- Parameters:
parserType
- the parser type- Since:
- 6.2
- See Also:
-
getParserType
Return the configured parser type.- Since:
- 6.2
-
setEncodingMode
Set theencoding 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 theWebClient
RestTemplate
have switched their default behavior.- Parameters:
encodingMode
- the encoding mode to use
-
getEncodingMode
Return the configured encoding mode. -
setDefaultUriVariables
Provide default URI variable values to use when expanding URI templates with a Map of variables.- Parameters:
defaultUriVariables
- default URI variable values
-
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 toEncodingMode.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 toEncodingMode.URI_COMPONENT
. -
expand
Description copied from interface:UriTemplateHandler
Expand the given URI template with a map of URI variables.- Specified by:
expand
in interfaceUriTemplateHandler
- Parameters:
uriTemplate
- the URI templateuriVars
- variable values- Returns:
- the created URI instance
-
expand
Description copied from interface:UriTemplateHandler
Expand the given URI template with an array of URI variables.- Specified by:
expand
in interfaceUriTemplateHandler
- Parameters:
uriTemplate
- the URI templateuriVars
- variable values- Returns:
- the created URI instance
-
uriString
Description copied from interface:UriBuilderFactory
Initialize a builder with the given URI template.- Specified by:
uriString
in interfaceUriBuilderFactory
- Parameters:
uriTemplate
- the URI template to use- Returns:
- the builder instance
-
builder
Description copied from interface:UriBuilderFactory
Create a URI builder with default settings.- Specified by:
builder
in interfaceUriBuilderFactory
- Returns:
- the builder instance
-