Class EncodedResourceResolver
- All Implemented Interfaces:
ResourceResolver
The list of supported contentCodings
can
be configured, in order of preference, and each coding must be associated
with extensions
.
Note that this resolver must be ordered ahead of a
VersionResourceResolver
with a content-based, version strategy to
ensure the version calculation is not impacted by the encoding.
- Since:
- 5.1
- Author:
- Rossen Stoyanchev
-
Field Summary
Modifier and TypeFieldDescriptionThe default content codings.Fields inherited from class org.springframework.web.reactive.resource.AbstractResourceResolver
logger
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionReturn a read-only list with the supported content codings.Return a read-only map with coding-to-extension mappings.void
registerExtension
(String coding, String extension) Java config friendly alternative tosetExtensions(Map)
.protected reactor.core.publisher.Mono<Resource>
resolveResourceInternal
(ServerWebExchange exchange, String requestPath, List<? extends Resource> locations, ResourceResolverChain chain) protected reactor.core.publisher.Mono<String>
resolveUrlPathInternal
(String resourceUrlPath, List<? extends Resource> locations, ResourceResolverChain chain) void
setContentCodings
(List<String> codings) Configure the supported content codings in order of preference.void
setExtensions
(Map<String, String> extensions) Configure mappings from content codings to file extensions.Methods inherited from class org.springframework.web.reactive.resource.AbstractResourceResolver
resolveResource, resolveUrlPath
-
Field Details
-
DEFAULT_CODINGS
The default content codings.
-
-
Constructor Details
-
EncodedResourceResolver
public EncodedResourceResolver()
-
-
Method Details
-
setContentCodings
Configure the supported content codings in order of preference. The first coding that is present in the "Accept-Encoding" header for a given request, and that has a file present with the associated extension, is used.Note: Each coding must be associated with a file extension via
registerExtension(java.lang.String, java.lang.String)
orsetExtensions(java.util.Map<java.lang.String, java.lang.String>)
. Also customizations to the list of codings here should be matched by customizations to the same list inCachingResourceResolver
to ensure encoded variants of a resource are cached under separate keys.By default this property is set to ["br", "gzip"].
- Parameters:
codings
- one or more supported content codings
-
getContentCodings
Return a read-only list with the supported content codings. -
setExtensions
Configure mappings from content codings to file extensions. A dot "." will be prepended in front of the extension value if not present.By default this is configured with ["br" -> ".br"] and ["gzip" -> ".gz"].
- Parameters:
extensions
- the extensions to use.- See Also:
-
getExtensions
Return a read-only map with coding-to-extension mappings. -
registerExtension
Java config friendly alternative tosetExtensions(Map)
.- Parameters:
coding
- the content codingextension
- the associated file extension
-
resolveResourceInternal
protected reactor.core.publisher.Mono<Resource> resolveResourceInternal(@Nullable ServerWebExchange exchange, String requestPath, List<? extends Resource> locations, ResourceResolverChain chain) - Specified by:
resolveResourceInternal
in classAbstractResourceResolver
-
resolveUrlPathInternal
protected reactor.core.publisher.Mono<String> resolveUrlPathInternal(String resourceUrlPath, List<? extends Resource> locations, ResourceResolverChain chain) - Specified by:
resolveUrlPathInternal
in classAbstractResourceResolver
-