org.springframework.web.reactive.config

## Class ResourceHandlerRegistry

- java.lang.Object
- - org.springframework.web.reactive.config.ResourceHandlerRegistry

    public class ResourceHandlerRegistry
    extends Object

Stores registrations of resource handlers for serving static resources such as images, css files and others through Spring WebFlux including setting cache headers optimized for efficient loading in a web browser. Resources can be served out of locations under web application root, from the classpath, and others.

To create a resource handler, use `addResourceHandler(String...)` providing the URL path patterns for which the handler should be invoked to serve static resources (e.g. `"/resources/**"`).

Then use additional methods on the returned `ResourceHandlerRegistration` to add one or more locations from which to serve static content from (e.g. {`"/"`, `"classpath:/META-INF/public-web-resources/"`}) or to specify a cache period for served resources.

Since:
  5.0
Author:
  Rossen Stoyanchev, Brian Clozel

### Constructor Summary

Constructors
Constructor and Description
`ResourceHandlerRegistry(org.springframework.core.io.ResourceLoader resourceLoader)` Create a new resource handler registry for the given resource loader (typically an application context).

### Method Summary

All Methods Instance Methods Concrete Methods
`ResourceHandlerRegistration` `addResourceHandler(String... patterns)` Add a resource handler for serving static resources based on the specified URL path patterns.
`protected AbstractUrlHandlerMapping` `getHandlerMapping()` Return a handler mapping with the mapped resource handlers; or `null` in case of no registrations.
`boolean` `hasMappingForPattern(String pathPattern)` Whether a resource handler has already been registered for the given path pattern.
`ResourceHandlerRegistry` `setOrder(int order)` Specify the order to use for resource handling relative to other `HandlerMapping`s configured in the Spring configuration.
`void` `setResourceUrlProvider(ResourceUrlProvider resourceUrlProvider)` Configure the `ResourceUrlProvider` that can be used by `ResourceTransformer` instances.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ResourceHandlerRegistry

    public ResourceHandlerRegistry(org.springframework.core.io.ResourceLoader resourceLoader)

Create a new resource handler registry for the given resource loader (typically an application context).

Parameters:
  `resourceLoader` - the resource loader to use

### Method Detail

#### setResourceUrlProvider

    public void setResourceUrlProvider(@Nullable
                                       ResourceUrlProvider resourceUrlProvider)

Configure the `ResourceUrlProvider` that can be used by `ResourceTransformer` instances.

Parameters:
  `resourceUrlProvider` - the resource URL provider to use
Since:
  5.0.11

#### addResourceHandler

    public ResourceHandlerRegistration addResourceHandler(String... patterns)

Add a resource handler for serving static resources based on the specified URL path patterns. The handler will be invoked for every incoming request that matches to one of the specified path patterns.

Patterns like `"/static/**"` or `"/css/{filename:\\w+\\.css}"` are allowed. See `PathPattern` for more details on the syntax.

Returns:
  a `ResourceHandlerRegistration` to use to further configure the registered resource handler

#### hasMappingForPattern

    public boolean hasMappingForPattern(String pathPattern)

Whether a resource handler has already been registered for the given path pattern.

#### setOrder

    public ResourceHandlerRegistry setOrder(int order)

Specify the order to use for resource handling relative to other `HandlerMapping`s configured in the Spring configuration.

The default value used is `Integer.MAX_VALUE-1`.

#### getHandlerMapping

    @Nullable
    protected AbstractUrlHandlerMapping getHandlerMapping()

Return a handler mapping with the mapped resource handlers; or `null` in case of no registrations.