原文地址:https://www.jianshu.com/p/03b289439de2

springboot中使用说明

jetcache原理参见:https://www.jianshu.com/p/8cff0062a899
jetcache 源码参见:https://github.com/alibaba/jetcache.git

1 引入pom依赖

<dependency>
<groupId>com.alicp.jetcache</groupId>
<artifactId>jetcache-starter-redis</artifactId>
<version>2.4.4</version>
</dependency>

2 在启动类上增加注解

@SpringBootApplication(scanBasePackages = {"com.example.firstjetcacheprj.business","com.alicp.jetcache.autoconfigure"})
@EnableMethodCache(basePackages = "com.example.firstjetcacheprj.business")
@EnableCreateCacheAnnotation
public class FirstjetcacheprjApplication {
public static void main(String[] args) {
SpringApplication.run(FirstjetcacheprjApplication.class, args);
}
}

其中需要注意的是:

  • 在@SpringBootApplication注解对应的scanBasePackages中增加jetcache自动配置对应的包。
  • 增加注解EnableMethodCache,并制定开启缓存对应的包路径。
  • 增加注解EnableCreateCacheAnnotation,这个注解是开启对应的CreateCache注解。

3 在application.yml中增加对应的缓存全局配置

jetcache:
statIntervalMinutes: 15
areaInCacheName: false
local:
default:
type: linkedhashmap
keyConvertor: fastjson
otherCacheName:
type: xxx
keyConverter: yyy
remote:
default:
type: redis
keyConvertor: fastjson
valueEncoder: java
valueDecoder: java
poolConfig:
minIdle: 5
maxIdle: 20
maxTotal: 50
host: 127.0.0.1
port: 6379

配置中字段讲解可以参考https://github.com/alibaba/jetcache/wiki/Config_CN

4 在对应接口或者类方法上增加缓存注解

具体注解详细说明请参考:https://github.com/alibaba/jetcache/wiki/MethodCache_CN

4.1增加缓存

接口Service对应的代码如下:

public interface Service {
@Cached(cacheType = CacheType.LOCAL)
int printSay(String message);
}

只需要在对应接口的方法上增加注解@Cache,即可以在对应这个方法增加缓存。

4.2缓存刷新

对应的代码如下:

public interface Service {
@Cached(cacheType = CacheType.LOCAL)
@CacheRefresh(refresh = 60)
int printSay(String message);
}

@CacheRefresh上面的配置是1分钟刷新一次

4.3 缓存失效

对应的代码如下:

@CacheInvalidate(name = "c1", key = "args[0]")
void delete(String id);

表示从缓存名称为c1,将对应key为id值的记录从缓存c1中删除。

4.4 缓存更新

对应的代码如下:

@CacheUpdate(name = "c1", key = "#id", value = "args[1]")
void update(String id, int value);

刷新缓存对应的缓存名称为c1,缓存中对应的key为id的值,更新key的值为value的值。

4.5 缓存开启

对应的代码如下:

@Cached(enabled = false)
public int countWithDisabledCache(){
return count++;
}
@EnableCache
public int enableCacheWithAnnoOnClass(){
return countWithDisabledCache();
}

从上面代码中可以看出方法countWithDisabledCache对应的方法定义了缓存功能,但是这个功能被关闭了,而方法enableCacheWithAnnoOnClass方法上开启了缓存的功能,则方法countWithDisabledCache虽然本身的缓存被关闭了,但是调用方法开启了,则方法countWithDisabledCache对应的缓存功能也被开启了。

作者:瑜骐
链接:https://www.jianshu.com/p/03b289439de2
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

最新文章

  1. 利用TortoiseSVN获取最新版本的OpenCV源码
  2. [LeetCode] Maximum Product Subarray 求最大子数组乘积
  3. ListView+CheckBox实现全选 单击效果
  4. 上传App Store成功后,无法构建版本解决方法
  5. Behavior Tree
  6. 【逆向怎么玩】 动态调试一款牛逼C++ IDE实录
  7. iphone数据存储之-- Core Data的使用(一)
  8. Android 【问题汇总】列表数组越界的问题
  9. 30条MySQL优化总结
  10. svn 安装与设置
  11. VC程序快速删除自己(可能做升级程序的时候有用)
  12. ci公共模型类
  13. 一个&quot;2-SUM&quot;问题
  14. 小程序首页onLoad为异步,调用app.js中的全局参数的解决方案。
  15. bower 基础认识
  16. H3C常用配置和命令
  17. 9.DataGrid数据表格
  18. Unity3D学习笔记(一):Unity简介、游戏物体、组件和生命周期函数
  19. shell while 语句
  20. serialize()传值缺失

热门文章

  1. jquery自己写的带左右箭头自动播放幻灯插件,简化
  2. HDU6383p1m2(二分)
  3. 2018-11-17-win10-uwp-在-xaml-让-TextBlock-换行
  4. Java Developer&#39;s Guide to SSL Certificates
  5. python文件的读写追加等操作
  6. MFC_对话框_访问控件_7种方法_A
  7. Linux 命令整理 vim
  8. HMaster/HRegion Server 工作原理
  9. 使用 Visual Studio Code 进行远程开发
  10. Python 进程、线程、协程的介绍与使用