在spring项目中提供了CacheManager接口来定义缓存管理器,这样各个不同的缓存就可以实现它来提供管理器的功能了,在spring-boot-starter-data-redis.jar中自动配置了RedisCacheManager(实现了CacheManager接口),可以通过设置spring.cache.cache-names属性在启动时创建其缓存,并且可以使用spring.cache.redis.*属性配置缓存默认...
有些配置可能又是一个类通用的,这种情况就可以使用@CacheConfig了,它是一个类级别的注解,可以在类级别上配置cacheNames、keyGenerator、cacheManager、cacheResolver等。 @CachePut @CachePut注解修饰的方法,会把方法的返回值put到缓存里面缓存起来,它只是触发put的动作,和@Cacheable不同,不会读取缓存,put到缓存的值进...
@Cacheable(cacheNames="book", condition="#name.length() < 32", unless="#result.hardback") public Book findBook(String name) @Cacheable还可以设置:keyGenerator(指定key自动生成方法),cacheManager(指定使用的缓存管理),cacheResolver(指定使用缓存的解析器)等,这些参数比较适合全局设置,这里就不多做介绍了。
packagecom.nasus.cache;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.cache.annotation.EnableCaching;@EnableCaching// 开启缓存功能@SpringBootApplicationpublicclassCacheApplication{publicstaticvoidmain(String[]args){SpringApplic...
spring.cache.cache-names=customers,customersSearch spring.cache.caffeine.spec=initialCapacity=10,maximumSize=100,expireAfterAccess=1h caffeine 规范可从字符串中解析。语法是一组逗号分隔的键值对。每个设置对应 Caffeine 类的一个构建方法。props的完整列表可在此处找到。
GENERIC, // 使用的SimpleCacheManager(自己手动指定Cache,可任意类型Cache实现哦) JCACHE, // 使用org.springframework.cache.jcache.JCacheCacheManager EHCACHE, // 使用org.springframework.cache.ehcache.EhCacheCacheManager HAZELCAST, // 使用com.hazelcast.spring.cache.HazelcastCacheManager ...
这个Cache是在我们调用CacheAspectSupport的execute方法的时候,会new一个CacheOperationContext。在这个Context的构造方法里,会用cacheResolver去解析注解中的Cache,生成Cache对象。默认的cacheResolver是SimpleCacheResolver,它从CacheOperation中取得配置的cacheNames,然后用cacheManager去get一个Cache。这里的cacheManager是用于...
spring.cache.cache-names= # 程序启动时创建的缓存名称 spring.cache.ehcache.config= # ehcache 配置文件的地址 spring.cache.hazelcast.config= # hazelcast配置文件的地址 spring.cache.infinispan.config= # infinispan配置文件的地址 spring.cache.jcache.config= # jcache配置文件的地址 ...
@Cacheable:在方法执行前先检查缓存,如果缓存中已经存在相应的数据,则直接返回缓存数据而不执行方法。 @CachePut:无论如何都会执行方法,并将执行结果放入指定的缓存中。 @CacheEvict:删除缓存中的数据,通常用于删除操作或数据更新后的缓存同步。 @Caching:组合多个缓存操作,可以同时使用以上几种注解。
Caffeine是使用Java8对Guava缓存的重写版本,在Spring Boot 2.0中将取代Guava。如果出现Caffeine,CaffeineCacheManager将会自动配置。使用spring.cache.cache-names属性可以在启动时创建缓存,并可以通过以下配置进行自定义(按顺序): spring.cache.caffeine.spec: 定义的特殊缓存 ...