SpringBoot Redis 缓存失效设置
小编今天来给大家带来SpringBoot Redis 缓存失效设置
项目地址:https://github.com/xulinglin/bai-Test.git
也可以下载 jar 放入项目里 https://pan.baidu.com/s/16NEbm4xZRx1SNc1f8Zn5WQ
springboot本身 集成的spring-boot-starter-data-redis @Cacheable 注解不提供缓存失效时间,头疼。
小编基于SpringMVC自定义注解实现了Redis获取和缓存失效时间设置。
指需要在方法上加上@RedisCacheable注解就能进行缓存
用过 SpringBoot Redis应该会清楚,如果你没用过。去学习一下 seconds 为失效时间 单位为秒
自定义注解实现为Springboot拦截器的实现,拦截所有方法上有@RedisCacheable的方法进实现
获取java拦截方法,进行java动态调用。
#redis 配置
redis.host=####
redis.port=6379
redis.timeout=30
redis.password=#####
redis.poolMaxTotal=1000
redis.poolMaxIdle=500
redis.poolMaxWait=500
在进行反射动态加载的时候,小编遇到的坑就是参数的类型转换。
获取参数为String类型的怎么进行类型转换呢
小编跟SpringMVC源代码跟了一天找到了SpringMVC是用ConversionService来进行参数类型转换的。
小编在这里用的是 DefaultConversionService 做为实现类进行调用
具体的就不说了 在下面项目的 ConversionConfig.java 文件里,有给小编遇到同样问题的朋友可以看看。
注意了该项目使用@RedisCacheable缓存输出的为 Json格式
jar使用方式 进行 pom文件引用
在SpringBoot启动main上面加上 scanBasePackages 扫描当前包