Class BroadleafCachingResourceResolver

java.lang.Object
org.springframework.web.servlet.resource.AbstractResourceResolver
org.broadleafcommerce.common.web.resource.resolver.BroadleafCachingResourceResolver
All Implemented Interfaces:
org.springframework.core.Ordered, org.springframework.web.servlet.resource.ResourceResolver

@Component("blCacheResourceResolver") public class BroadleafCachingResourceResolver extends org.springframework.web.servlet.resource.AbstractResourceResolver implements org.springframework.core.Ordered
A ResourceResolver that handles using the theme as part of the cache key and adds in support to disable with environment properties.

We bypass CachingResourceResolver and instead borrow its code in order to be able to inject the theme key that is needed by BLC since Spring's class could not be leveraged otherwise.

Since:
Broadleaf 4.0
Author:
Brian Polster
  • Field Details

    • RESOLVED_RESOURCE_CACHE_KEY_PREFIX

      public static final String RESOLVED_RESOURCE_CACHE_KEY_PREFIX
      See Also:
    • RESOLVED_URL_PATH_CACHE_KEY_PREFIX

      public static final String RESOLVED_URL_PATH_CACHE_KEY_PREFIX
      See Also:
    • RESOLVED_RESOURCE_CACHE_KEY_PREFIX_NULL

      public static final String RESOLVED_RESOURCE_CACHE_KEY_PREFIX_NULL
      See Also:
    • RESOLVED_URL_PATH_CACHE_KEY_PREFIX_NULL

      public static final String RESOLVED_URL_PATH_CACHE_KEY_PREFIX_NULL
      See Also:
    • blcContextUtil

      protected BroadleafContextUtil blcContextUtil
    • resourceCachingEnabled

      @Value("${resource.caching.enabled:true}") protected boolean resourceCachingEnabled
  • Constructor Details

    • BroadleafCachingResourceResolver

      @Autowired public BroadleafCachingResourceResolver(@Qualifier("blSpringCacheManager") org.springframework.cache.CacheManager cacheManager)
    • BroadleafCachingResourceResolver

      public BroadleafCachingResourceResolver(org.springframework.cache.Cache cache)
  • Method Details

    • getCache

      public org.springframework.cache.Cache getCache()
      Return the configured Cache.
    • resolveResourceInternal

      protected org.springframework.core.io.Resource resolveResourceInternal(jakarta.servlet.http.HttpServletRequest request, String requestPath, List<? extends org.springframework.core.io.Resource> locations, org.springframework.web.servlet.resource.ResourceResolverChain chain)
      Specified by:
      resolveResourceInternal in class org.springframework.web.servlet.resource.AbstractResourceResolver
    • computeKey

      protected String computeKey(jakarta.servlet.http.HttpServletRequest request, String requestPath)
      Pulled from CachingResourceResolver
      Parameters:
      request -
      requestPath -
      Returns:
    • resolveUrlPathInternal

      protected String resolveUrlPathInternal(String resourceUrlPath, List<? extends org.springframework.core.io.Resource> locations, org.springframework.web.servlet.resource.ResourceResolverChain chain)
      Specified by:
      resolveUrlPathInternal in class org.springframework.web.servlet.resource.AbstractResourceResolver
    • logNullReferenceUrlPatchMatch

      protected void logNullReferenceUrlPatchMatch(String resourceUrlPath)
    • getThemePathFromBRC

      protected String getThemePathFromBRC()
      Returns the theme path from the BroadleafRequestContext or an empty string if no theme was resolved
      Returns:
    • getOrder

      public int getOrder()
      Specified by:
      getOrder in interface org.springframework.core.Ordered
    • setOrder

      public void setOrder(int order)