通过自定义ehcache缓存策略+自定义缓存事件来实现ehcahce中一个cache指定不同时间,且支持设定总缓存大小或数量。
引入依赖
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>3.9.1</version>
</dependency>
版本实测过3.9.1和3.10.x低版本没有widthService方法
指定缓存大小
protected static final ResourcePools RESOURCE_POOLS = ResourcePoolsBuilder.newResourcePoolsBuilder()
.heap(10, MemoryUnit.MB)
.offheap(20, MemoryUnit.MB)
.build();
注意:配置了offheap则所有value必须是实现了
Serializable
接口的对象否则报错Seeing this exception and having no other serialization related issues is a red flag!
完整示例:
https://www.leftso.com/article/2404181615302031.html