public class EncodedResourceResolver extends AbstractResourceResolver
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.
Modifier and Type | Field and Description |
---|---|
static java.util.List<java.lang.String> |
DEFAULT_CODINGS
The default content codings.
|
logger
Constructor and Description |
---|
EncodedResourceResolver() |
Modifier and Type | Method and Description |
---|---|
java.util.List<java.lang.String> |
getContentCodings()
Return a read-only list with the supported content codings.
|
java.util.Map<java.lang.String,java.lang.String> |
getExtensions()
Return a read-only map with coding-to-extension mappings.
|
void |
registerExtension(java.lang.String coding,
java.lang.String extension)
Java config friendly alternative to
setExtensions(Map) . |
protected reactor.core.publisher.Mono<Resource> |
resolveResourceInternal(ServerWebExchange exchange,
java.lang.String requestPath,
java.util.List<? extends Resource> locations,
ResourceResolverChain chain) |
protected reactor.core.publisher.Mono<java.lang.String> |
resolveUrlPathInternal(java.lang.String resourceUrlPath,
java.util.List<? extends Resource> locations,
ResourceResolverChain chain) |
void |
setContentCodings(java.util.List<java.lang.String> codings)
Configure the supported content codings in order of preference.
|
void |
setExtensions(java.util.Map<java.lang.String,java.lang.String> extensions)
Configure mappings from content codings to file extensions.
|
resolveResource, resolveUrlPath
public static final java.util.List<java.lang.String> DEFAULT_CODINGS
public void setContentCodings(java.util.List<java.lang.String> codings)
Note: Each coding must be associated with a file
extension via registerExtension(java.lang.String, java.lang.String)
or setExtensions(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 in CachingResourceResolver
to
ensure encoded variants of a resource are cached under separate keys.
By default this property is set to ["br", "gzip"].
codings
- one or more supported content codingspublic java.util.List<java.lang.String> getContentCodings()
public void setExtensions(java.util.Map<java.lang.String,java.lang.String> extensions)
By default this is configured with ["br" -> ".br"] and ["gzip" -> ".gz"].
extensions
- the extensions to use.registerExtension(String, String)
public java.util.Map<java.lang.String,java.lang.String> getExtensions()
public void registerExtension(java.lang.String coding, java.lang.String extension)
setExtensions(Map)
.coding
- the content codingextension
- the associated file extensionprotected reactor.core.publisher.Mono<Resource> resolveResourceInternal(@Nullable ServerWebExchange exchange, java.lang.String requestPath, java.util.List<? extends Resource> locations, ResourceResolverChain chain)
resolveResourceInternal
in class AbstractResourceResolver
protected reactor.core.publisher.Mono<java.lang.String> resolveUrlPathInternal(java.lang.String resourceUrlPath, java.util.List<? extends Resource> locations, ResourceResolverChain chain)
resolveUrlPathInternal
in class AbstractResourceResolver