阿里巴巴Jetcache springboot使用教程
原文地址: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
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
阿里巴巴Jetcache springboot使用教程的更多相关文章
- SpringBoot图文教程14—SpringBoot集成EasyExcel「上」
有天上飞的概念,就要有落地的实现 概念十遍不如代码一遍,朋友,希望你把文中所有的代码案例都敲一遍 先赞后看,养成习惯 SpringBoot 图文教程系列文章目录 SpringBoot图文教程1「概念+ ...
- springBoot系列教程07:异常捕获
发生异常是很正常的事,异常种类也是千奇百怪,发生异常并不可怕,只要正确的处理,并正确的返回错误信息并无大碍,如果不进行捕获或者处理,分分钟服务器宕机是很正常的事 所以处理异常时,最基本的要求就是发生异 ...
- SpringBoot进阶教程(二十九)整合Redis 发布订阅
SUBSCRIBE, UNSUBSCRIBE 和 PUBLISH 实现了 发布/订阅消息范例,发送者 (publishers) 不用编程就可以向特定的接受者发送消息 (subscribers). Ra ...
- SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1
在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...
- Java工程师之SpringBoot系列教程前言&目录
前言 与时俱进是每一个程序员都应该有的意识,当一个Java程序员在当代步遍布的时候,你就行该想到我能多学点什么.可观的是后端的框架是稳定的,它们能够维持更久的时间在应用中,而不用担心技术的更新换代.但 ...
- SpringBoot系列教程起步
本篇学习目标 Spring Boot是什么? 构建Spring Boot应用程序 三分钟开发SpringBoot应用程序 本章源码下载 Spring Boot是什么? spring Boot是由Piv ...
- (转) SpringBoot非官方教程 | 第二十四篇: springboot整合docker
这篇文篇介绍,怎么为 springboot程序构建一个Docker镜像.docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的 ...
- (转)SpringBoot非官方教程 | 第七篇:springboot开启声明式事务
springboot开启事务很简单,只需要一个注解@Transactional 就可以了.因为在springboot中已经默认对jpa.jdbc.mybatis开启了事事务,引入它们依赖的时候,事物就 ...
- (转)SpringBoot非官方教程 | 第三篇:SpringBoot用JdbcTemplates访问Mysql
本文介绍springboot通过jdbc访问关系型MySQL,通过spring的JdbcTemplate去访问. 准备工作 jdk 1.8 maven 3.0 idea mysql 初始化mysql: ...
随机推荐
- ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(2)
创建公共分页参数类Common/GridPager.cs using System; using System.Collections.Generic; using System.Linq; usin ...
- Struts2 基于XML校验(易百教程)
以下是的各类字段级和非字段级验证在Struts2列表: date validator: <field name="birthday"> <field-valida ...
- 007.MFC_ComboBox_ListBox
组合框.列表框 组合框的封装类:CComboBox 列表框的封装类:CListBox 一.创建名为ComboAndList的MFC工程,按照下图添加组件 修改static text Caption属性 ...
- codeforces -1214 E
题目https://codeforces.com/problemset/problem/1214/E 就是得知奇数之间不产生影响,先造出一条链,再用偶数往里插就行.链要di从大到小排个序呀!! #in ...
- $Poj3208$ 启示录 数位统计$DP$
Poj AcWing Description Sol 这题长得就比较像数位$DP$叭. 所以先用$DP$进行预处理,再基于拼凑思想,通过"试填法"求出最终的答案. 设$F[i] ...
- .net 异步编程总结
异步的方式,就是,先发起IO.CPU密集工作等,然后函数返回,在IO.CPU密集工作等完成了以后——某个不确定的时刻,再执行后续的代码. 所以,如果使用异步代码,必须注意代码的执行顺序. 所以,异 ...
- dos2unix命令 – 将DOS格式的文本文件转换成UNIX格式
今天做题的时候,出现了个很冷门的: 查找子目录src下所有后缀为.txt的文件执行dos2unix命令,把文件从Dos格式转换为Linux格式,正确的命令是:find src "*.txt& ...
- 基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇
基于Netty和SpringBoot实现一个轻量级RPC框架-协议篇 前提 最近对网络编程方面比较有兴趣,在微服务实践上也用到了相对主流的RPC框架如Spring Cloud Gateway底层也切换 ...
- Docker系列-第七篇Docker构建SpringBoot应用
1.基于Dockerfile构建SpringBoot镜像 1.1准备工作 将SpringBoot项目通过maven打成jar包 mvn clean package #使用maven打包项目 1.2使用 ...
- MySQL快速回顾:高级查询操作
8.1 排序数据 检索出的数据并不是以纯粹的随机顺序显示的.如果不排序,数据一般将以它在底层表中出现的顺序显示.这可以是数据最初添加到表中的顺序.但是,如果数据后来进行过更新或删除,则此顺序将会受到M ...