SpringBoot缓存注解@Cacheable之自定义key策略及缓存失效时间
在Spring Boot中,使用@Cacheable
注解时,可以通过key
属性来指定自定义的key生成策略,同时可以通过cacheManager
和keyGenerator
属性来指定使用自定义的缓存管理器和键生成器。此外,可以通过配置文件来设置缓存的失效时间。
自定义key策略示例:
@Cacheable(value = "myCache", key = "#user.username")
public User findUserByUsername(User user) {
// 方法的逻辑
}
自定义缓存管理器和键生成器示例:
@Bean
public CacheManager cacheManager() {
SimpleCacheManager cacheManager = new SimpleCacheManager();
cacheManager.setCaches(Arrays.asList(new ConcurrentMapCache("myCache")));
return cacheManager;
}
@Bean
public KeyGenerator keyGenerator() {
return new KeyGenerator() {
@Override
public Object generate(Object target, Method method, Object... params) {
StringBuilder key = new StringBuilder();
key.append(target.getClass().getSimpleName());
key.append(".");
key.append(method.getName());
for (Object param : params) {
key.append(param.toString());
}
return key.toString();
}
};
}
在配置文件中设置缓存失效时间(例如application.properties):
spring.cache.cache-names=myCache
spring.cache.redis.time-to-live=10m
以上配置了一个名为myCache
的缓存,并且设置了失效时间为10分钟。这些配置将应用于使用@Cacheable
注解的方法,并且会使用自定义的缓存管理器和键生成器。
评论已关闭