基于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>
本文暂时没有评论,来添加一个吧(●'◡'●)