EhCache存储对象注意深、浅拷贝的问题

EhCache在存储对象时,如果直接存储,例如:直接存储List对象,将使用浅拷贝处理,存储后如果对list进行操作,对应EhCache存储的对象也会变化。如果List很大,jvm垃圾回收机制不会将该对象回收,会占用堆内存,有触发OOM的风险。
** 建议对需存储的对象先进行深拷贝处理再通过Ehcache存储,例如在存储前对待存储对象执行序列化操作等。**

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ehcache3.10.0版本下获取cache对象的方法如下所示: 1. 使用CacheManager获取Cache对象: ```java import org.ehcache.Cache; import org.ehcache.CacheManager; import org.ehcache.config.Configuration; import org.ehcache.config.builders.CacheManagerBuilder; // Create a CacheManager Configuration config = new Configuration(); CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder() .withCache("myCache", // cache name // cache configuration config.newCacheConfigurationBuilder() .buildConfig(Long.class, String.class)) .build(); cacheManager.init(); // Initialize CacheManager // Get cache object Cache<Long, String> myCache = cacheManager.getCache("myCache", Long.class, String.class); ``` 2. 使用CacheManagerBuilder获取Cache对象: ```java import org.ehcache.Cache; import org.ehcache.config.Configuration; import org.ehcache.config.builders.CacheConfigurationBuilder; import org.ehcache.config.builders.CacheManagerBuilder; import org.ehcache.config.builders.ResourcePoolsBuilder; import org.ehcache.config.units.EntryUnit; import org.ehcache.config.units.MemoryUnit; // Create a CacheManagerBuilder Configuration config = new Configuration(); CacheManagerBuilder<CacheManager> builder = CacheManagerBuilder.newCacheManagerBuilder().withCache( "myCache", CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class, ResourcePoolsBuilder.newResourcePoolsBuilder() .heap(10, EntryUnit.ENTRIES) // Max entries in heap .offheap(1, MemoryUnit.MB) // Max offheap memory .disk(20, MemoryUnit.MB) // Max disk space ).build() ); // Build the CacheManager and get Cache object CacheManager cacheManager = builder.build(true); Cache<Long, String> myCache = cacheManager.getCache("myCache", Long.class, String.class); ``` 这两种方法都可以获取到指定名称的Cache对象

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值