Class StandardCacheManager

Object
org.thymeleaf.cache.AbstractCacheManager
org.thymeleaf.cache.StandardCacheManager
All Implemented Interfaces:
ICacheManager

public class StandardCacheManager extends AbstractCacheManager

Standard implementation of ICacheManager, returning configurable instances of StandardCache for each of the default caches defined at the cache manager interface.

Each cache allows the configuration of the following parameters:

  • Its name (will be displayed in logs).
  • Its initial size: the size the cache will be initialized with.
  • Its maximum size: the maximum size the cache will be allowed to reach. Some special values:
    • -1 means no limit in size.
    • 0 means this cache will not be used at all (getXCache() will return null).
  • Whether the cache should use soft references or not (java.lang.ref.SoftReference). Using Soft References allows the cache to be memory-sensitive, allowing the garbage collector to dispose cache entries if memory is critical, before raising an OutOfMemoryError.
  • The name of the logger that will output trace information for the cache object. Configuring this allows a finer-grained log configuration that allows the more effective inspection of cache behaviour. If not specifically set, org.thymeleaf.TemplateEngine.cache.${cacheName} will be used.
  • An (optional) validity checker implementing ICacheEntryValidityChecker, which will be applied on each entry upon retrieval from cache in order to ensure it is still valid and can be used.

Note a class with this name existed since 2.0.0, but it was completely reimplemented in Thymeleaf 3.0

Since:
3.0.0
Author:
Daniel Fernández
  • Field Details

    • DEFAULT_TEMPLATE_CACHE_NAME

      public static final String DEFAULT_TEMPLATE_CACHE_NAME
      Default template cache name: "TEMPLATE_CACHE"
      See Also:
    • DEFAULT_TEMPLATE_CACHE_INITIAL_SIZE

      public static final int DEFAULT_TEMPLATE_CACHE_INITIAL_SIZE
      Default template cache initial size: 20
      See Also:
    • DEFAULT_TEMPLATE_CACHE_MAX_SIZE

      public static final int DEFAULT_TEMPLATE_CACHE_MAX_SIZE
      Default template cache maximum size: 200
      See Also:
    • DEFAULT_TEMPLATE_CACHE_ENABLE_COUNTERS

      public static final boolean DEFAULT_TEMPLATE_CACHE_ENABLE_COUNTERS
      Default template cache "enable counters" flag: false
      See Also:
    • DEFAULT_TEMPLATE_CACHE_USE_SOFT_REFERENCES

      public static final boolean DEFAULT_TEMPLATE_CACHE_USE_SOFT_REFERENCES
      Default template cache "use soft references" flag: true
      See Also:
    • DEFAULT_TEMPLATE_CACHE_LOGGER_NAME

      public static final String DEFAULT_TEMPLATE_CACHE_LOGGER_NAME
      Default template cache logger name: null (default behaviour = org.thymeleaf.TemplateEngine.cache.TEMPLATE_CACHE)
    • DEFAULT_TEMPLATE_CACHE_VALIDITY_CHECKER

      public static final ICacheEntryValidityChecker<TemplateCacheKey,TemplateModel> DEFAULT_TEMPLATE_CACHE_VALIDITY_CHECKER
      Default template cache validity checker: an instance of StandardParsedTemplateEntryValidator.
    • DEFAULT_EXPRESSION_CACHE_NAME

      public static final String DEFAULT_EXPRESSION_CACHE_NAME
      Default expression cache name: "EXPRESSION_CACHE"
      See Also:
    • DEFAULT_EXPRESSION_CACHE_INITIAL_SIZE

      public static final int DEFAULT_EXPRESSION_CACHE_INITIAL_SIZE
      Default expression cache initial size: 100
      See Also:
    • DEFAULT_EXPRESSION_CACHE_MAX_SIZE

      public static final int DEFAULT_EXPRESSION_CACHE_MAX_SIZE
      Default expression cache maximum size: 500
      See Also:
    • DEFAULT_EXPRESSION_CACHE_ENABLE_COUNTERS

      public static final boolean DEFAULT_EXPRESSION_CACHE_ENABLE_COUNTERS
      Default expression cache "enable counters" flag: false
      See Also:
    • DEFAULT_EXPRESSION_CACHE_USE_SOFT_REFERENCES

      public static final boolean DEFAULT_EXPRESSION_CACHE_USE_SOFT_REFERENCES
      Default expression cache "use soft references" flag: true
      See Also:
    • DEFAULT_EXPRESSION_CACHE_LOGGER_NAME

      public static final String DEFAULT_EXPRESSION_CACHE_LOGGER_NAME
      Default expression cache logger name: null (default behaviour = org.thymeleaf.TemplateEngine.cache.EXPRESSION_CACHE)
    • DEFAULT_EXPRESSION_CACHE_VALIDITY_CHECKER

      public static final ICacheEntryValidityChecker<ExpressionCacheKey,Object> DEFAULT_EXPRESSION_CACHE_VALIDITY_CHECKER
      Default expression cache validity checker: null
  • Constructor Details

    • StandardCacheManager

      public StandardCacheManager()
  • Method Details

    • initializeTemplateCache

      protected final ICache<TemplateCacheKey,TemplateModel> initializeTemplateCache()
      Specified by:
      initializeTemplateCache in class AbstractCacheManager
    • initializeExpressionCache

      protected final ICache<ExpressionCacheKey,Object> initializeExpressionCache()
      Specified by:
      initializeExpressionCache in class AbstractCacheManager
    • getTemplateCacheName

      public String getTemplateCacheName()
    • getTemplateCacheUseSoftReferences

      public boolean getTemplateCacheUseSoftReferences()
    • getTemplateCacheInitialSize

      public int getTemplateCacheInitialSize()
    • getTemplateCacheMaxSize

      public int getTemplateCacheMaxSize()
    • getTemplateCacheLoggerName

      public String getTemplateCacheLoggerName()
    • getTemplateCacheValidityChecker

      public ICacheEntryValidityChecker<TemplateCacheKey,TemplateModel> getTemplateCacheValidityChecker()
    • getTemplateCacheLogger

      public final org.slf4j.Logger getTemplateCacheLogger()
    • getExpressionCacheName

      public String getExpressionCacheName()
    • getExpressionCacheUseSoftReferences

      public boolean getExpressionCacheUseSoftReferences()
    • getExpressionCacheInitialSize

      public int getExpressionCacheInitialSize()
    • getExpressionCacheMaxSize

      public int getExpressionCacheMaxSize()
    • getExpressionCacheLoggerName

      public String getExpressionCacheLoggerName()
    • getExpressionCacheValidityChecker

      public ICacheEntryValidityChecker<ExpressionCacheKey,Object> getExpressionCacheValidityChecker()
    • getExpressionCacheLogger

      public final org.slf4j.Logger getExpressionCacheLogger()
    • setTemplateCacheName

      public void setTemplateCacheName(String templateCacheName)
    • setTemplateCacheInitialSize

      public void setTemplateCacheInitialSize(int templateCacheInitialSize)
    • setTemplateCacheMaxSize

      public void setTemplateCacheMaxSize(int templateCacheMaxSize)
    • setTemplateCacheUseSoftReferences

      public void setTemplateCacheUseSoftReferences(boolean templateCacheUseSoftReferences)
    • setTemplateCacheLoggerName

      public void setTemplateCacheLoggerName(String templateCacheLoggerName)
    • setTemplateCacheValidityChecker

      public void setTemplateCacheValidityChecker(ICacheEntryValidityChecker<TemplateCacheKey,TemplateModel> templateCacheValidityChecker)
    • setTemplateCacheEnableCounters

      public void setTemplateCacheEnableCounters(boolean templateCacheEnableCounters)
    • setExpressionCacheName

      public void setExpressionCacheName(String expressionCacheName)
    • setExpressionCacheInitialSize

      public void setExpressionCacheInitialSize(int expressionCacheInitialSize)
    • setExpressionCacheMaxSize

      public void setExpressionCacheMaxSize(int expressionCacheMaxSize)
    • setExpressionCacheUseSoftReferences

      public void setExpressionCacheUseSoftReferences(boolean expressionCacheUseSoftReferences)
    • setExpressionCacheLoggerName

      public void setExpressionCacheLoggerName(String expressionCacheLoggerName)
    • setExpressionCacheValidityChecker

      public void setExpressionCacheValidityChecker(ICacheEntryValidityChecker<ExpressionCacheKey,Object> expressionCacheValidityChecker)
    • setExpressionCacheEnableCounters

      public void setExpressionCacheEnableCounters(boolean expressionCacheEnableCounters)