如果redis服务器没有运行,则需要实现一个缓存错误处理程序,如果数据没有缓存,该处理程序将重定向到要调用的原始方法。下面的错误处理程序应该做到这一点:
@Component
public class RedisCacheErrorHandler implements CacheErrorHandler {
private final Logger log = LoggerFactory.getLogger(getClass());
@Override
public void handleCacheGetError(RuntimeException exception, Cache cache, Object key) {
log.info("Unable to get from cache " + cache.getName() + " : " + exception.getMessage());
}
@Override
public void handleCachePutError(RuntimeException exception, Cache cache, Object key, Object value) {
log.info("Unable to put into cache " + cache.getName() + " : " + exception.getMessage());
}
@Override
public void handleCacheEvictError(RuntimeException exception, Cache cache, Object key) {
log.info("Unable to evict from cache " + cache.getName() + " : " + exception.getMessage());
}
@Override
public void handleCacheClearError(RuntimeException exception, Cache cache) {
log.info("Unable to clean cache " + cache.getName() + " : " + exception.getMessage());
}
}