Итак, чтобы сделать вывод и дать ответ на основе комментариев, это не особенность абстракции кеша, но SPI абстракции кеша достаточно прост для вас, чтобы реализовать что-то самостоятельно.
public class FallbackCache implements Cache {
private final Cache primaryCache;
private final Cache fallbackCache;
FallbackCache(Cache primaryCache, Cache fallbackCache) { ... }
public ValueWrapper get(Object key) {
ValueWrapper wrapper = primaryCache.get(key);
if (wrapper != null) {
return wrapper;
}
return fallbackCache.get(key);
}
// other methods
}
Некоторые методы, такие как встроенный метод доступа к кэшу, могут быть немного сложными для этого варианта использования.Я бы вернул основной кэш и скрыл тот факт, что от вызывающей стороны есть запасной вариант.
Если вы знаете свои кэши заранее, то вы можете создать их и обернуть их в SimpleCacheManager
.Если вам нужно создать их на лету, API CacheManager
требует, чтобы вы реализовали два простых метода.