在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屬性指定了默認的緩存名稱,如果在具體的方法上沒有指定緩存名稱,那么就會使用默認的緩存名稱。如果在具體的方法上指定了緩存名稱,那么就會使用方法上指定的緩存名稱。