下面是我的ehcache配置文件
< ehcache xmlns:xsi =“http://www.w3.org/2001/XMLSchema-instance” 的xsi:noNamespaceSchemaLocation = “ehcache.xsd” UpdateCheck的= “真” 监控=“自动检测” …
能够使用ehcache-JSR-107包装器来解决这个问题。下面是java配置
@Component public class CachingSetup implements JCacheManagerCustomizer { @Override public void customize(CacheManager cacheManager) { cacheManager.createCache("trans", new MutableConfiguration<>() .setExpiryPolicyFactory(CreatedExpiryPolicy.factoryOf(new Duration(SECONDS, 10))) .setStoreByValue(false) .setStatisticsEnabled(true)); } }
双响炮
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> <!--Starter for using Spring Framework's caching support--> </dependency> <dependency> <groupId>javax.cache</groupId> <!-- JSR-107 API--> <artifactId>cache-api</artifactId> </dependency> <dependency> <groupId>org.ehcache</groupId> <artifactId>ehcache</artifactId> <version>3.0.0</version> </dependency> </dependencies>
如果您希望缓存内容在没有交互的情况下消失,那确实没有发生。 Ehcache没有对过期项目的背景检查,这些项目会急切地删除它们。
相反,删除过期的项目是内联的,无论何时尝试访问它们,或者在写入缓存期间,驱逐都会因为缓存已满而启动。