扩展spring之ext-spring-cache
生活随笔
收集整理的這篇文章主要介紹了
扩展spring之ext-spring-cache
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ext-spring-cache擴展@Cacheable緩存注解
- ext-spring-cache擴展@Cacheable緩存注解
- 介紹
- 前置條件
- 功能特性
- 相關配置項
- 使用說明
介紹
ext-spring-cache的 @ExtCacheable 是對spring的 @Cacheable 的擴展, @ExtCacheable 功能更豐富、用起來更舒心
前置條件
- spring-boot
- redis
- jdk8+
功能特性
相關配置項
提示:可詳見com.ideaaedi.extspringcache.constant.ExtCacheConfigPlaceholder
| ext.spring.cache.print-banner | true | 控制是否打印ext-spring-cache banner |
| ext.spring.cache.redis-caffeine.caffeine-as-first-cache | 是否以caffeine作為一級緩存 true: caffeine作為一級緩存,redis作為二級緩存 false: redis作為一級緩存,caffeine作為二級緩存 | |
| ext.spring.cache.redis-caffeine.value-back-fill | true | (若一級緩存沒數據,二級緩存有數據), 是否回填二級緩存的數據至一級緩存 |
| ext.spring.cache.use-default-cache-manager-if-miss | true | 當沒有ext管理器可以被總管理器ExtCacheManager管理時,管理器ExtCacheManager是否管理默認的CacheManager |
| ext.spring.cache.redis.response-spring-context | true | true: 默認對spring-context中的配置作出響應。 即:在spring-context中若存在相應配置或相關bean,那么會影響所有的Redis。此時,可通過在使用@Redis注解時,顯示的指定相關配置來覆蓋 spring-context中的配置 false: 默認不對spring-context中的配置作出響應。即:不管spring-context是否存在相應配置或相關bean,都不會影響Redis。此時,在使用@Redis注解時,顯示的指定相關配置依然有效 |
| ext.spring.cache.caffeine.response-spring-context | true | true: 默認對spring-context中的配置作出響應。 即:在spring-context中若存在相應配置或相關bean,那么會影響所有的Caffeine。此時,可通過在使用@Caffeine注解時,顯示的指定相關配置來覆蓋 spring-context中的配置 false: 默認不對spring-context中的配置作出響應。即:不管spring-context是否存在相應配置或相關bean,都不會影響Caffeine。此時,在使用@Caffeine注解時,顯示的指定相關配置依然有效 |
| ext.spring.cache.redis-caffeine.response-spring-context | true | true: 默認對spring-context中的配置作出響應。 即:在spring-context中若存在相應配置或相關bean,那么會影響所有的Redis、Caffeine。此時,可通過在使用@Redis、@Caffeine注解時,顯示的指定相關配置來覆蓋 spring-context中的配置 false: 默認不對spring-context中的配置作出響應。即:不管spring-context是否存在相應配置或相關bean,都不會影響Redis、Caffeine。此時,在使用@Redis、@Caffeine注解時,顯示的指定相關配置依然有效 |
| …… | …… | …… |
使用說明
-
第一步:引入依賴
<dependency><groupId>com.idea-aedi</groupId><artifactId>ext-spring-cache</artifactId><version>{選擇與spring-boot版本號相近的版本}</version> </dependency> -
第二步:使用@EnableExtCache注解啟用ext-spring-cache功能
import com.ideaaedi.extspringcache.EnableExtCache; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;@EnableExtCache @SpringBootApplication public class AppApplication {public static void main(String[] args) {SpringApplication.run(AppApplication.class, args);} } -
第三步:使用@ExtCacheable注解即可
-
示例一
@GetMapping("/demo") @ExtCacheable(cacheNames = "cache-demo", key = "'jd' + #param",caffeine = @Caffeine(expireTime = 300, maximumSize = 3, expireStrategy = CaffeineExpireStrategyEnum.EXPIRE_AFTER_ACCESS) ) public Object two(String param) {System.err.println("進two了\t" + param);return param + ThreadLocalRandom.current().nextInt(100); } -
示例二
@GetMapping("/demo") @ExtCacheable(cacheNames = "cache-demo", key = "'jd' + #param",redis = @Redis(useRedisTemplate = "redisTemplate",expireTime = 100,timeUnit = ChronoUnit.MINUTES,expireStrategy = RedisExpireStrategyEnum.AUTO) ) public Object two(String param) {System.err.println("進two了\t" + param);return param + ThreadLocalRandom.current().nextInt(100); } -
示例三
@GetMapping("/demo") @ExtCacheable(cacheNames = "cache-demo", key = "'jd' + #param",redis = @Redis(useRedisTemplate = "redisTemplate", expireTime = 600),caffeine = @Caffeine(expireTime = 300, maximumSize = 3) ) public Object two(String param) {System.err.println("進two了\t" + param);return param + ThreadLocalRandom.current().nextInt(100); }
-
^_^ 本文已經被收錄進《程序員成長筆記》 ,筆者JustryDeng
總結
以上是生活随笔為你收集整理的扩展spring之ext-spring-cache的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库例题1
- 下一篇: 多媒体计算机技术中处理的媒体元素,系统架