在Spring Boot中可以使用@CacheConfig注解来配置多个缓存。使用@CacheConfig注解可以为多个方法或类统一指定缓存配置。具体步骤如下:
-
在Spring Boot的主配置类或者需要启用缓存的配置类上添加@EnableCaching注解,开启缓存功能。
-
在需要启用缓存的方法上添加@Cacheable、@CachePut、@CacheEvict等缓存注解,指定缓存的一些配置,如缓存名称、缓存键等。
-
在需要启用缓存的类上添加@CacheConfig注解,指定默认的缓存配置,包括缓存的名称、缓存的管理器等。
下面是一个示例代码,演示如何在Spring Boot中配置多个缓存:
@Configuration @EnableCaching public class CacheConfig { @Bean public CacheManager cacheManager() { SimpleCacheManager cacheManager = new SimpleCacheManager(); // 创建缓存对象 Cache cache1 = new ConcurrentMapCache("cache1"); Cache cache2 = new ConcurrentMapCache("cache2"); // 将缓存对象加入到缓存管理器中 cacheManager.setCaches(Arrays.asList(cache1, cache2)); return cacheManager; } @CacheConfig(cacheNames = "cache1") @Service public class MyService1 { @Cacheable(key = "#id") public String getDataFromCache(int id) { // 从数据库或其他地方获取数据 return "Data from cache1"; } @CachePut(key = "#id") public String updateDataInCache(int id) { // 更新缓存中的数据 return "Updated data in cache1"; } @CacheEvict(key = "#id") public void deleteDataFromCache(int id) { // 从缓存中删除数据 } } @CacheConfig(cacheNames = "cache2") @Service public class MyService2 { @Cacheable(key = "#id") public String getDataFromCache(int id) { // 从数据库或其他地方获取数据 return "Data from cache2"; } @CachePut(key = "#id") public String updateDataInCache(int id) { // 更新缓存中的数据 return "Updated data in cache2"; } @CacheEvict(key = "#id") public void deleteDataFromCache(int id) { // 从缓存中删除数据 } } }
在上面的示例中,我们使用@CacheConfig注解为MyService1和MyService2类统一指定了缓存配置。MyService1使用了名为"cache1"的缓存,而MyService2使用了名为"cache2"的缓存。我们还需要在CacheConfig类中创建Cache对象,并将它们加入到缓存管理器中。
注意,@CacheConfig注解中的cacheNames属性指定了默认的缓存名称,如果在具体的方法上没有指定缓存名称,那么就会使用默认的缓存名称。如果在具体的方法上指定了缓存名称,那么就会使用方法上指定的缓存名称。