zoukankan      html  css  js  c++  java
  • SpringCloud+Ehcache

    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);
    }
    }

  • 相关阅读:
    Spring MVC中@ControllerAdvice注解实现全局异常拦截
    IDEA一个窗口打开多个项目
    IntelliJ IDEA中Spring Boot项目使用spring-boot-devtools无法实现热部署/热更新的问题解决
    Java中String/StringBuffer/StringBuilder区别(转)
    IDEA查看源码时提示:Library source does not match the bytecode for class的问题分析
    忙的一天的复盘
    Apollo专题
    使用Spring JPA中Page、Pageable接口和Sort类完成分页排序【专题】
    公众号开发之wx-tools+springboot应用实战-音乐爬虫推送[JAVA]
    [LeetCode] 152. Maximum Product Subarray 求最大子数组乘积
  • 原文地址:https://www.cnblogs.com/wangymd/p/11170380.html
Copyright © 2011-2022 走看看