Здесь я пытаюсь обновить свой spring-data-redis RedisTemplate
, используя реактивный-redis ReactiveRedisTemplate
, который возвращает Publisher.В этом случае я хочу изменить метод findCache
на Mono
.Проблема в старой findCache
функции, которая с помощью spring-data-redis принимает общие данные, например:
@Autowired
ReactiveRedisTemplate redisTemplate;
public <T> T findCache(String key, Class<T> clazz) {
Object content = this.redisTemplate.opsForValue().get(key);
if (content != null) {
return clazz.cast(content);
}
return null;
}
конечно, я получу ошибку
Cannot cast reactor.core.publisher.MonoDefer to Person
тогда, так какя хочу, чтобы он работал реактивно, я обновляю этот код, чтобы вернуть издателя, например:
if (content != null) {
return ((Mono) content).flatMap(o -> clazz.cast(o));
}
, но он также не будет работать, так как мой findCache
принимает универсальный.что я должен сделать, пожалуйста, помогите.