org.springframework.web.servlet.resource

## Class CachingResourceTransformer

- java.lang.Object
- - org.springframework.web.servlet.resource.CachingResourceTransformer

- All Implemented Interfaces:
    ResourceTransformer

      public class CachingResourceTransformer
      extends Object
      implements ResourceTransformer

  A `ResourceTransformer` that checks a `Cache` to see if a previously transformed resource exists in the cache and returns it if found, and otherwise delegates to the resolver chain and saves the result in the cache.
  Since:
    4.1
  Author:
    Rossen Stoyanchev

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CachingResourceTransformer(Cache cache)`
    `CachingResourceTransformer(CacheManager cacheManager, String cacheName)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Cache` | `getCache()` Return the configured `Cache`.
    `Resource` | `transform(HttpServletRequest request, Resource resource, ResourceTransformerChain transformerChain)` Transform the given resource.

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

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

- - ### Constructor Detail

    - #### CachingResourceTransformer

          public CachingResourceTransformer(Cache cache)

    - #### CachingResourceTransformer

          public CachingResourceTransformer(CacheManager cacheManager,
                                            String cacheName)

  - ### Method Detail

    - #### getCache

          public Cache getCache()

      Return the configured `Cache`.

    - #### transform

          public Resource transform(HttpServletRequest request,
                                    Resource resource,
                                    ResourceTransformerChain transformerChain)
                             throws IOException

      Description copied from interface: `ResourceTransformer`
      Transform the given resource.
      Specified by:
        `transform` in interface `ResourceTransformer`
      Parameters:
        `request` - the current request
        `resource` - the resource to transform
        `transformerChain` - the chain of remaining transformers to delegate to
      Returns:
        the transformed resource (never `null`)
      Throws:
        `IOException` - if the transformation fails