1、pom文件引入

<!-- https://mvnrepository.com/artifact/org.ehcache/ehcache -->
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>3.7.0</version>
</dependency>

2、磁盘存储

@Bean("cacheManager")
public CacheManager cacheManager() {
//缓存大小设置:磁盘
ResourcePoolsBuilder cacheSize = ResourcePoolsBuilder.newResourcePoolsBuilder().disk(1, MemoryUnit.GB);
//缓存类型设置
CacheConfigurationBuilder<String, String> cacheConfigurationBuilder = CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class, String.class, cacheSize);
//创建缓存管理器
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
.with(CacheManagerBuilder.persistence(new File(getStoragePath(), "askbob")))//设置存储位置
.withCache("askbob", cacheConfigurationBuilder).build(true);//初始化,或cacheManager.init();
return cacheManager;
}
//设置磁盘路径
private String getStoragePath() {
ApplicationHome applicationHome = new ApplicationHome(getClass());
File file = applicationHome.getDir();
return file.toString();
}

3、堆存储

@Bean("cacheManager")
public CacheManager cacheManager() {
//缓存大小设置:堆
ResourcePoolsBuilder cacheSize = ResourcePoolsBuilder.newResourcePoolsBuilder().heap(1, EntryUnit.ENTRIES).offheap(1, MemoryUnit.GB);
//缓存类型设置
CacheConfigurationBuilder<String, String> cacheConfigurationBuilder = CacheConfigurationBuilder.newCacheConfigurationBuilder(String.class, String.class, cacheSize);
//创建缓存管理器
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
.withCache("askbob", cacheConfigurationBuilder).build(true);//初始化或cacheManager.init();
return cacheManager;
}

@Bean("ehcache")
public Cache<String, String> createCache() {
CacheManager cacheManager = cacheManager();
Cache<String, String> cache = cacheManager.getCache("askbob", String.class, String.class);
return cache;
}

4、缓存设置

@Bean("cacheManager")
public CacheManager cacheManager() {
//缓存大小设置:堆
ResourcePoolsBuilder cacheSize = ResourcePoolsBuilder.newResourcePoolsBuilder().heap(1, EntryUnit.ENTRIES).offheap(1, MemoryUnit.GB);
//缓存类型设置
CacheConfigurationBuilder<String, String> cacheConfigurationBuilder = CacheConfigurationBuilder
.newCacheConfigurationBuilder(String.class, String.class, cacheSize)
.withExpiry(ExpiryPolicyBuilder.timeToLiveExpiration(Duration.ofHours(24)));//缓存超时设置
//创建缓存管理器
CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
.withCache("askbob", cacheConfigurationBuilder).build(true);//初始化或cacheManager.init();
return cacheManager;
}

5、测试类

@RunWith(SpringRunner.class)
@SpringBootTest(classes = AskBobApplication.class)
public class EhcacheTest {

@Autowired
Cache<String, String> ehcache;

@Test
public void ehcachTest() {
ehcache.put("ehcach", "hello ehcach 2019");
String cache = ehcache.get("ehcach");
System.out.println(cache);
Assert.assertNotNull(cache);
}
}

最新文章

  1. 微软BI 之SSRS 系列 - 如何设置页标题重复
  2. hadoop系列讨论
  3. 讓 SourceTree 讀取自定的 SSH key
  4. centos msyql 安装与配置
  5. VS2012报表(RDLC)系列应用之单据批量打印
  6. Android学习之路——简易版微信为例(二)
  7. poj1269(直线交点)
  8. 异常信息:java.lang.OutOfMemoryError: PermGen space
  9. VS2010 boost 使用问题一例
  10. requests之headers &#39;Content-Type&#39;: &#39;text/html&#39;误判encoding为&#39;ISO-8859-1&#39;导致中文text解码错误
  11. tomcat advanced (RUNNING)
  12. Solidity合约记录——(一)如何寻找以太坊真实Solidity源码
  13. 【Spring Security】五、自定义过滤器
  14. VMware&#160;Linux下拖拽补丁vmtools的安装和卸载
  15. Python3.5+SQL+Prometheus+Grafana报表/监控
  16. 基于Python Shell获取hostname和fqdn释疑
  17. 小白用Android MVP-初体验(一)
  18. [LeetCode] 3. Longest Substring Without Repeating Characters ☆☆☆
  19. 【POJ 2976 Dropping tests】
  20. Bloomberg 专线配置问题

热门文章

  1. python selenium unittest Fixture(setUp/tearDown)笔记
  2. 我说我精通字符串,面试官竟然问我Java中的String有没有长度限制!?|附视频讲解
  3. 手把手教你用Python网络爬虫获取网易云音乐歌曲
  4. IE8/IE9/IE10打开网页后,自动设置浏览器模式为“IE8/IE9/IE10兼容性视图”
  5. 【Linux】Xshell 配置密钥登陆
  6. h5+ 开发分享功能
  7. GO 使用Webhook 实现github 自动化部署
  8. vue移动端转场动画
  9. WordPress获取某个分类关联的标签
  10. Istio Sidecar