java.lang.Object
org.springframework.web.servlet.config.annotation.ResourceHandlerRegistration
public class
ResourceHandlerRegistration
extends
Object
Encapsulates information required to create a resource handler.
Since:
Author:
Rossen Stoyanchev, Keith Donald, Brian Clozel
Add one or more resource locations from which to serve static content.
Configure locations to serve static resources from based on pre-resolved
Resource
references.
Return the URL path patterns for the resource handler.
Configure a chain of resource resolvers and transformers to use.
Configure a chain of resource resolvers and transformers to use.
Specify the
CacheControl
which should be used
by the resource handler.
Specify the cache period for the resources served by the resource handler, in seconds.
Set whether to optimize the specified locations through an existence check on startup,
filtering non-existing directories upfront so that they do not have to be checked
on every resource access.
ResourceHandlerRegistration
public
ResourceHandlerRegistration
(
String
... pathPatterns)
Parameters:
pathPatterns
- one or more resource URL path patterns
addResourceLocations
Add one or more resource locations from which to serve static content.
Each location must point to a valid directory. Multiple locations may
be specified as a comma-separated list, and the locations will be checked
for a given resource in the order specified.
For example, {
"/"
,
"classpath:/META-INF/public-web-resources/"
}
allows resources to be served both from the web application root and
from any JAR on the classpath that contains a
/META-INF/public-web-resources/
directory, with resources in the
web application root taking precedence.
For
URL-based resources
(e.g. files, HTTP URLs, etc) this method supports a special prefix to
indicate the charset associated with the URL so that relative paths
appended to it can be encoded correctly, e.g.
[charset=Windows-31J]https://example.org/path
.
Returns:
the same
ResourceHandlerRegistration
instance, for
chained method invocation
addResourceLocations
Configure locations to serve static resources from based on pre-resolved
Resource
references.
Parameters:
locations
- the resource locations to use
Returns:
the same
ResourceHandlerRegistration
instance, for
chained method invocation
Since:
5.3.3
setCachePeriod
Specify the cache period for the resources served by the resource handler, in seconds. The default is to not
send any cache headers but to rely on last-modified timestamps only. Set to 0 in order to send cache headers
that prevent caching, or to a positive number of seconds to send cache headers with the given max-age value.
Parameters:
cachePeriod
- the time to cache resources in seconds
Returns:
the same
ResourceHandlerRegistration
instance, for chained method invocation
setCacheControl
Parameters:
cacheControl
- the CacheControl configuration to use
Returns:
the same
ResourceHandlerRegistration
instance, for chained method invocation
Since:
setUseLastModified
Set whether the
Resource.lastModified()
information should be used to drive HTTP responses.
This configuration is set to
true
by default.
Parameters:
useLastModified
- whether the "last modified" resource information should be used
Returns:
the same
ResourceHandlerRegistration
instance, for chained method invocation
Since:
See Also:
ResourceHttpRequestHandler.setUseLastModified(boolean)
setOptimizeLocations
Set whether to optimize the specified locations through an existence check on startup,
filtering non-existing directories upfront so that they do not have to be checked
on every resource access.
The default is
false
, for defensiveness against zip files without directory
entries which are unable to expose the existence of a directory upfront. Switch this flag to
true
for optimized access in case of a consistent jar layout with directory entries.
Parameters:
optimizeLocations
- whether to optimize the locations through an existence check on startup
Returns:
the same
ResourceHandlerRegistration
instance, for chained method invocation
Since:
5.3.13
See Also:
ResourceHttpRequestHandler.setOptimizeLocations(boolean)
resourceChain
Configure a chain of resource resolvers and transformers to use. This
can be useful, for example, to apply a version strategy to resource URLs.
If this method is not invoked, by default only a simple
PathResourceResolver
is used in order to match URL paths to
resources under the configured locations.
Parameters:
cacheResources
- whether to cache the result of resource resolution;
setting this to "true" is recommended for production (and "false" for
development, especially when applying a version strategy)
Returns:
the same
ResourceHandlerRegistration
instance, for chained method invocation
Since:
resourceChain
Configure a chain of resource resolvers and transformers to use. This
can be useful, for example, to apply a version strategy to resource URLs.
If this method is not invoked, by default only a simple
PathResourceResolver
is used in order to match URL paths to
resources under the configured locations.
Parameters:
cacheResources
- whether to cache the result of resource resolution;
setting this to "true" is recommended for production (and "false" for
development, especially when applying a version strategy
cache
- the cache to use for storing resolved and transformed resources;
by default a
ConcurrentMapCache
is used. Since Resources aren't serializable and can be dependent on the
application host, one should not use a distributed cache but rather an
in-memory cache.
Returns:
the same
ResourceHandlerRegistration
instance, for chained method invocation
Since: