私も同じ問題を抱えていました。このための汎用Beanを作成し、GenricJackson2JsonRedisSerializerを使用できます。問題は、これを使用することにより、後で逆シリアル化が機能するように、jsonがいくつかの追加データとともに保存されることです。
別の方法は、Jackson2JsonRedisSerializerを使用することですが、動作するには汎用タイプのClassインスタンスが必要です。取得方法がわかりませんでした。
@Bean("objectRedisTemplate")
public <T> RedisTemplate<String, T> objectRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, T> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
RedisSerializer<String> serializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(serializer);
redisTemplate.setHashKeySerializer(serializer);
redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return redisTemplate;
}
キャッシュクラスでの使用法:
@Autowired
@Qualifier("objectRedisTemplate")
private RedisTemplate<String, MyTypeA> redisTemplate;