我有一個關于在春季使用咖啡因進行快取的問題。
我有一個快取配置:
@Configuration
public class CaffeineCacheConfig {
@Bean
public CacheManager cacheManager() {
CaffeineCacheManager cacheManager = new CaffeineCacheManager(
"someDataCache1",
"someDataCache2");
cacheManager.setCaffeine(caffeineCacheBuilder());
return cacheManager;
}
Caffeine<Object, Object> caffeineCacheBuilder() {
return Caffeine.newBuilder()
.initialCapacity(100)
.maximumSize(200)
.expireAfterWrite(1, TimeUnit.DAYS)
.recordStats();
}
}
還有一個@Cachaeble方法:
@Override
@Cacheable
public List<SomeData> getSomeData(String group) {
return someService.getSomeDataForGroup(group);
}
現在,這些group值是預定義的,它們只能是group1,group2并且group3將來會添加。
這種快取機制是否可以根據值來配置,String group所以someDataCache1會在什么時候String group使用,什么時候使用等等?group1someDataCache1String groupgroup2
uj5u.com熱心網友回復:
您可以向注解添加多個條件 @Cacheable注解@Caching。
@Caching(cacheable = {
@Cacheable(cacheNames = "someDataCache1", condition = "#group.equals('group1')"),
@Cacheable(cacheNames = "someDataCache2", condition = "#group.equals('group2')")
})
public List<String> getSomeData(String group) {
return someService.getSomeDataForGroup(group);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/436329.html
