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.
UriComponentsBuilder| Modifier and Type | Class and Description |
|---|---|
static class |
DefaultUriBuilderFactory.EncodingMode
Enum to represent multiple URI encoding strategies.
|
| Constructor and Description |
|---|
DefaultUriBuilderFactory()
Default constructor without a base URI.
|
DefaultUriBuilderFactory(String baseUriTemplate)
Constructor with a base URI.
|
DefaultUriBuilderFactory(UriComponentsBuilder baseUri)
Variant of
DefaultUriBuilderFactory(String) with a
UriComponentsBuilder. |
| Modifier and Type | Method and Description |
|---|---|
UriBuilder |
builder()
Create a URI builder with default settings.
|
URI |
expand(String uriTemplate,
Map<String,?> uriVars)
Expand the given URI template with a map of URI variables.
|
URI |
expand(String uriTemplate,
Object... uriVars)
Expand the given URI template with an array of URI variables.
|
Map<String,?> |
getDefaultUriVariables()
Return the configured default URI variable values.
|
DefaultUriBuilderFactory.EncodingMode |
getEncodingMode()
Return the configured encoding mode.
|
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 the
encoding mode to use. |
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. |
boolean |
shouldParsePath()
Whether to parse the path into path segments if the encoding mode is set
to
EncodingMode.URI_COMPONENT. |
UriBuilder |
uriString(String uriTemplate)
Initialize a builder with the given URI template.
|
public DefaultUriBuilderFactory()
The target address must be specified on each UriBuilder.
public DefaultUriBuilderFactory(String baseUriTemplate)
The given URI template is parsed via
UriComponentsBuilder.fromUriString(java.lang.String) and then applied as a base URI
to every UriBuilder via UriComponentsBuilder.uriComponents(org.springframework.web.util.UriComponents) unless
the UriBuilder itself was created with a URI template that already has a
target address.
baseUriTemplate - the URI template to use a base URLpublic DefaultUriBuilderFactory(UriComponentsBuilder baseUri)
DefaultUriBuilderFactory(String) with a
UriComponentsBuilder.public void setEncodingMode(DefaultUriBuilderFactory.EncodingMode encodingMode)
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.
encodingMode - the encoding mode to usepublic DefaultUriBuilderFactory.EncodingMode getEncodingMode()
public void setDefaultUriVariables(@Nullable Map<String,?> defaultUriVariables)
defaultUriVariables - default URI variable valuespublic Map<String,?> getDefaultUriVariables()
public void setParsePath(boolean parsePath)
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.
parsePath - whether to parse the path into path segmentspublic boolean shouldParsePath()
EncodingMode.URI_COMPONENT.public URI expand(String uriTemplate, Map<String,?> uriVars)
UriTemplateHandlerexpand in interface UriTemplateHandleruriTemplate - the URI templateuriVars - variable valuespublic URI expand(String uriTemplate, Object... uriVars)
UriTemplateHandlerexpand in interface UriTemplateHandleruriTemplate - the URI templateuriVars - variable valuespublic UriBuilder uriString(String uriTemplate)
UriBuilderFactoryuriString in interface UriBuilderFactoryuriTemplate - the URI template to usepublic UriBuilder builder()
UriBuilderFactorybuilder in interface UriBuilderFactory