Example usage for org.springframework.web.reactive.resource ResourceWebHandler getResourceResolvers

List of usage examples for org.springframework.web.reactive.resource ResourceWebHandler getResourceResolvers

Introduction

In this page you can find the example usage for org.springframework.web.reactive.resource ResourceWebHandler getResourceResolvers.

Prototype

public List<ResourceResolver> getResourceResolvers() 

Source Link

Document

Return the list of configured resource resolvers.

Usage

From source file:org.springframework.web.reactive.resource.ResourceUrlProvider.java

private void detectResourceHandlers(ApplicationContext context) {
    logger.debug("Looking for resource handler mappings");

    Map<String, SimpleUrlHandlerMapping> beans = context.getBeansOfType(SimpleUrlHandlerMapping.class);
    List<SimpleUrlHandlerMapping> mappings = new ArrayList<>(beans.values());
    AnnotationAwareOrderComparator.sort(mappings);

    mappings.forEach(mapping -> {//from w ww  .j  av  a  2s  .com
        mapping.getHandlerMap().forEach((pattern, handler) -> {
            if (handler instanceof ResourceWebHandler) {
                ResourceWebHandler resourceHandler = (ResourceWebHandler) handler;
                if (logger.isDebugEnabled()) {
                    logger.debug("Found resource handler mapping: URL pattern=\"" + pattern + "\", "
                            + "locations=" + resourceHandler.getLocations() + ", " + "resolvers="
                            + resourceHandler.getResourceResolvers());
                }
                this.handlerMap.put(pattern, resourceHandler);
            }
        });
    });
}

From source file:org.springframework.web.reactive.resource.ResourceUrlProvider.java

private Mono<String> resolveResourceUrl(PathContainer lookupPath) {
    return this.handlerMap
            .entrySet().stream().filter(entry -> entry.getKey().matches(lookupPath)).sorted((entry1,
                    entry2) -> PathPattern.SPECIFICITY_COMPARATOR.compare(entry1.getKey(), entry2.getKey()))
            .findFirst().map(entry -> {
                PathContainer path = entry.getKey().extractPathWithinPattern(lookupPath);
                int endIndex = lookupPath.elements().size() - path.elements().size();
                PathContainer mapping = lookupPath.subPath(0, endIndex);
                if (logger.isTraceEnabled()) {
                    logger.trace(/*from www . jav  a 2  s .com*/
                            "Invoking ResourceResolverChain for URL pattern " + "\"" + entry.getKey() + "\"");
                }
                ResourceWebHandler handler = entry.getValue();
                List<ResourceResolver> resolvers = handler.getResourceResolvers();
                ResourceResolverChain chain = new DefaultResourceResolverChain(resolvers);
                return chain.resolveUrlPath(path.value(), handler.getLocations()).map(resolvedPath -> {
                    if (logger.isTraceEnabled()) {
                        logger.trace("Resolved public resource URL path \"" + resolvedPath + "\"");
                    }
                    return mapping.value() + resolvedPath;
                });

            }).orElse(Mono.empty());
}