EhCache实现HelloWorld

首先要创建一个maven项目,加入依赖

<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>2.10.3</version>
</dependency>

在resources路径下加入ehcache.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>

<ehcache>
    <!--
          磁盘存储:将缓存中暂时不使用的对象,转移到硬盘,类似于Windows系统的虚拟内存
           path:指定在硬盘上存储对象的路径
    -->
    <diskStore path="G:\ehcache"/>

    <!--
         defaultCache:默认的缓存配置信息,如果不加特殊说明,则所有对象按照此配置项处理
         maxElementsInMemory:设置了缓存的上限,最多存储多少个记录对象
         eternal:代表对象是否永不过期
         overflowToDisk:当内存中Element数量达到maxElementsInMemory时,Ehcache将会Element写到磁盘中
    -->
    <defaultCache
            maxElementsInMemory="100"
            eternal="true"
            overflowToDisk="true"/>
    <!--
           maxElementsInMemory设置成1,overflowToDisk设置成true,只要有一个缓存元素,就直接存到硬盘上去
           eternal设置成true,代表对象永久有效
           maxElementsOnDisk设置成0 表示硬盘中最大缓存对象数无限大
           diskPersistent设置成true表示缓存虚拟机重启期数据
        -->
    <cache
            name="a"
            maxElementsInMemory="1"
            eternal="true"
            overflowToDisk="true"
            maxElementsOnDisk="0"
            diskPersistent="true"/>

</ehcache>

新建一个测试类编写测试代码

 public static void main(String[] args) {
        // 根据ehcache.xml配置文件创建Cache管理器
        CacheManager manager = CacheManager.create("./src/main/resources/ehcache.xml");
        // 获取指定的cache
        Cache cache = manager.getCache("a");
        Element element1 = new Element("denghuolanshan", "厉害");
        Element element2 = new Element("java1234", "厉害a");

        // 把一个元素添加到Cache中
        cache.put(element1);
        cache.put(element2);
        // 根据key获取缓存元素
        Element e1 = cache.get("denghuolanshan");
        Element e2 = cache.get("java1234");
        System.out.println(e1.getObjectValue());
        System.out.println(e2);
        // 刷新缓存
        cache.flush();
        // 关闭缓存管理器
        manager.shutdown();
    }

运行结果

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
厉害
[ key = java1234, value=厉害a, version=1, hitCount=1, CreationTime = 1556059516572, LastAccessTime = 1556059516705 ]

但是我更新欢官网上的写法,无需配置文件

package top.denghuolanshan;

import org.ehcache.Cache;
import org.ehcache.CacheManager;
import org.ehcache.config.builders.CacheConfigurationBuilder;
import org.ehcache.config.builders.CacheManagerBuilder;
import org.ehcache.config.builders.ResourcePoolsBuilder;

/**
 * @ClassName GettingStartedEhcache
 * @Description TODO
 * @Author 小欧
 * @Date 2019/4/17 6:53
 * @Version 1.0
 **/
public class GettingStartedEhcache {
    public static void main(String[] args) {
        // 利用CacheManagerBuilder的静态方法(new =CacheManagerBuilder())创建一个CacheManagerBuild实例
        /**
         * li'y利用builder实例的withCache定义一个别名为preConfigured的缓存,缓存存储的数据中
         * key为Long类型的数据,这个缓存在CacheManager对象调用init()时创建
         * withCache("preConfigured",CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class,String.class,ResourcePoolsBuilder.heap(10))).build;
         */
        CacheManager manager = CacheManagerBuilder.newCacheManagerBuilder().build();

        /**
         * GettingStartedEhcache
         */
        manager.init();
        /**
         * 根据缓存名称/键值对的类型获取缓存管理器中对应的缓存对象
         */
        Cache<Long,String> preCache = manager.getCache("preConfigured",Long.class,String.class);
        // 利用缓存管理器创建名为myCache的新缓存对象
        Cache<Long,String> myCache = manager.createCache("myCache", CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class,String.class, ResourcePoolsBuilder.heap(100)));
        // 在名为myCache的缓存对象中存入键为1值为da one的键值对
        myCache.put(1L,"da one");
        // 在名为myCache的缓存对象中取键为1的value
        String value = myCache.get(1L);
        System.err.println(value);
        // 从缓存管理器中移除名为preConfigured的缓存对象
        manager.removeCache("preConfigured");
        // 关闭缓存管理器
        manager.close();
    }
}

实现Hello World结束

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值