专业的编程技术博客社区

网站首页 > 博客文章 正文

icloud-cache基于spring boot上的注解缓存

baijin 2024-08-21 11:24:40 博客文章 4 ℃ 0 评论

基于spring boot上的注解缓存,自带轻量级缓存管理页面。

@Cache比spring cache更轻量的缓存,支持单个缓存设置过期时间,可以根据前缀移除缓存。

采用fastjson序列化与反序列化,以json串存于缓存之中。

icloud-cache可以快速用于日常的spring boot应用之中。

数据可视化展示(生产环境不建议使用)

Redis 客户端查看

Cache API

使用手册

Maven依赖

<dependency>
 <groupId>com.gitee.ibyte</groupId>
 <artifactId>icloud-cache</artifactId>
 <version>0.0.2</version>
</dependency>

缓存配置

1、配置redis数据源,application.yml文件

#redis-cache 相关
redis:
 pool:
 maxActive: 300
 maxIdle: 100
 maxWait: 1000
 host: 127.0.0.1
 port: 6379
 password:
 timeout: 2000
 # 服务或应用名
 sysName: icloud
 enable: true
 database: 0

缓存开启

2、开启AOP扫描

@EnableiCloudCache

缓存使用

3、在Service上进行@Cache注解或@CacheClear注解

注解说明

配置缓存:@Cache

注解参数类型说明key字符串缓存表达式,动态运算出keyexpires整形缓存时长,单位:分钟desc描述缓存说明parserClass<? extends ICacheResultParser>缓存返回结果自定义处理类generatorClass<? extends IKeyGenerator>缓存键值自定义生成类

清除缓存:@CacheClear

注解参数类型说明pre字符串清除某些前缀key缓存key字符串清除某个key缓存keys字符串数组清除某些前缀key缓存generatorClass<? extends IKeyGenerator>缓存键值自定义生成类

默认key动态表达式说明

表达式举例说明举例@Cache(key="user:{1}")

public User getUserByAccount(String account){1}表示获取第一个参数值

{2}表示获取第二个参数值

……依此类推若:account = icloud,则:key = user:icloud@CacheClear(pre="user{1.account}")

User saveOrUpdate(User user){1}表示获取第一个参数值

{1.xx}表示获取第一个参数中的xxx属性若:account=icloud,则:key = user:icloud

轻量管理端

访问地址:http://localhost:8080/cache

管理端批量或前缀清除icloud-cache注册的缓存,同时也可以快速预览缓存的数据内容,也可以对缓存的失效时间进行延长。

Demo

1、在src/main/test中展开的相关示例代码

CacheTest是核心启动类

service包是缓存调用例子,包含自定义表达式和结果解析、注解的使用

兼容spring mvc模式

配置文文件

application.properties

redis.pool.maxActive = 300
redis.pool.maxIdle = 100
redis.pool.maxWait = 1000
redis.host = 127.0.0.1
redis.port = 6379
redis.password = 
redis.timeout = 2000
redis.database = 0
redis.sysName = icloud
redis.enable = true

applicationContext.xml

<!-- beans 头部-->
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
	http://www.springframework.org/schema/context 
	http://www.springframework.org/schema/context/spring-context-3.0.xsd"	
<!-- 开启AOP配置 -->	
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
<context:component-scan base-package="com.icloud.cache"/>
<context:annotation-config/> 

maven依赖

<properties>
 <!-- spring -->
 <spring.version>4.1.3.RELEASE</spring.version>
<properties>
<dependencies>
 <dependency>
 	<groupId>org.springframework</groupId>
 	<artifactId>spring-core</artifactId>
 	<version>${spring.version}</version>
 </dependency>
 <dependency>
 	<groupId>org.springframework</groupId>
 	<artifactId>spring-beans</artifactId>
 	<version>${spring.version}</version>
 </dependency>
 <dependency>
 	<groupId>org.springframework</groupId>
 	<artifactId>spring-context</artifactId>
 	<version>${spring.version}</version>
 </dependency>
 <dependency>
 	<groupId>org.springframework</groupId>
 	<artifactId>spring-context-support</artifactId>
 	<version>${spring.version}</version>
 </dependency>
 <dependency>
 	<groupId>org.springframework</groupId>
 	<artifactId>spring-aspects</artifactId>
 	<version>${spring.version}</version>
 </dependency>
 <dependency>
 	<groupId>org.springframework</groupId>
 	<artifactId>spring-webmvc</artifactId>
 	<version>${spring.version}</version>
 </dependency>
 <dependency>
 	<groupId>org.aspectj</groupId>
 	<artifactId>aspectjrt</artifactId>
 	<version>${aspectj.version}</version>
 </dependency>
</dependencies>

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表