博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
007-spring cache-缓存实现-02-springboot ehcahe3实现、springboot caffeine实现
阅读量:5742 次
发布时间:2019-06-18

本文共 2642 字,大约阅读时间需要 8 分钟。

一、springboot ehcahe3实现步骤

  EhCache 是一个纯Java的进程内缓存框架,具有快速、精干等特点,是Hibernate中默认CacheProvider。Ehcache是一种广泛使用的开源Java分布式缓存。主要面向通用缓存,Java EE和轻量级容器。它具有内存和磁盘存储,缓存加载器,缓存扩展,缓存异常处理程序,一个gzip缓存servlet过滤器,支持REST和SOAP api等特点。

代码地址:

1、pom

2、启动类注解

3、业务类注解

4、配置

# 配置ehcache缓存spring:  cache:    jcache:      config: classpath:ehcache3.xml  ###attention,这里是jcache

5、ehchahe配置文件【】

2000
100
10

二、springboot caffeine实现步骤

  Caffeine是使用Java8对Guava缓存的重写版本,在Spring Boot 2.0中将取代Guava。如果出现Caffeine,CaffeineCacheManager将会自动配置。使用spring.cache.cache-names属性可以在启动时创建缓存,并可以通过以下配置进行自定义(按顺序):

  • spring.cache.caffeine.spec: 定义的特殊缓存
  • com.github.benmanes.caffeine.cache.CaffeineSpec: bean定义
  • com.github.benmanes.caffeine.cache.Caffeine: bean定义

代码地址:

1、pom

2、启动类注解

3、业务类注解

4、配置

spring:  cache:    cache-names: user    caffeine:      spec: initialCapacity=50,maximumSize=500,expireAfterWrite=10s,refreshAfterWrite=5s

其中spec配置参数

initialCapacity=[integer]: 初始的缓存空间大小maximumSize=[long]: 缓存的最大条数maximumWeight=[long]: 缓存的最大权重expireAfterAccess=[duration]: 最后一次写入或访问后经过固定时间过期expireAfterWrite=[duration]: 最后一次写入后经过固定时间过期refreshAfterWrite=[duration]: 创建缓存或者最近一次更新缓存后经过固定的时间间隔,刷新缓存weakKeys: 打开key的弱引用weakValues:打开value的弱引用softValues:打开value的软引用recordStats:开发统计功能

注意:如果使用了refreshAfterWrite配置还必须指定一个CacheLoader,如:

package com.lhx.spring.cache.caffeine;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import com.github.benmanes.caffeine.cache.CacheLoader;@Configurationpublic class CacheLoaderSelf {    /**     * 必须要指定这个Bean,refreshAfterWrite=5s这个配置属性才生效     *     */    @Bean    public CacheLoader
cacheLoader() { CacheLoader
cacheLoader = new CacheLoader
() { @Override public Object load(Object key) throws Exception { return null; } // 重写这个方法将oldValue值返回回去,进而刷新缓存 @Override public Object reload(Object key, Object oldValue) throws Exception { return oldValue; } }; return cacheLoader; }}

注意:

  • expireAfterWrite和expireAfterAccess同事存在时,以expireAfterWrite为准。
  • maximumSize和maximumWeight不可以同时使用
  • weakValues和softValues不可以同时使用

 

转载地址:http://ywizx.baihongyu.com/

你可能感兴趣的文章
Sql 学习随笔
查看>>
struts2结果类型
查看>>
WordPress插件开发: 文章同步到OSC博客插件(OscPress) (一)
查看>>
为office 2003光盘实现自动填写序列号的安装
查看>>
如何计算存储的iops
查看>>
ArrayList类示例1
查看>>
typecho在lighttpd下两种伪静态规则都可以用
查看>>
linux下防止syn***,端口扫描和死亡之ping
查看>>
设计模式实战序
查看>>
谈谈我对 可读_可扩展 等6个概念的理解
查看>>
Cocos2d-x 3.0 RichText富文本
查看>>
使用IO Analyzer测试ESXI的性能
查看>>
Discuz!NT由虚拟目录转换为应用程序(server2008)
查看>>
jquery.form附件上传的 $.handleError 、以及 $.httpData
查看>>
MDSTableClient类相关分析
查看>>
我的友情链接
查看>>
Linux命令行:查看服务器开放的端口号
查看>>
烂泥:学习Nagios(二):Nagios配置
查看>>
cmake编译安装mysql
查看>>
我的友情链接
查看>>