springboot – Warum ist die Verwendung der Spring-Data-Redis-Bibliothek so mühsam? Sie müssen für jede Klasse einmal eine Serialisierungsklasse schreiben.
伊谢尔伦
伊谢尔伦 2017-06-28 09:27:25
0
1
1188

Deklarieren Sie eine Serialisierungsklasse, die einen bestimmten Typ (BaseCurrentUser) verarbeitet

    @Bean
    Jackson2JsonRedisSerializer<BaseCurrentUser> jackson2JsonRedisSerializer(ObjectMapper objectMapper) {
        Jackson2JsonRedisSerializer<BaseCurrentUser> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<BaseCurrentUser>(
                BaseCurrentUser.class);
        jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
        return jackson2JsonRedisSerializer;
    }

    @Bean
    RedisTemplate<String, BaseCurrentUser> currentUserRedisTemplate(JedisConnectionFactory connectionFactory,
                                                                    Jackson2JsonRedisSerializer<BaseCurrentUser> jackson2JsonRedisSerializer) {
        RedisTemplate<String, BaseCurrentUser> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(connectionFactory);
        redisTemplate.setDefaultSerializer(jackson2JsonRedisSerializer);
        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
        redisTemplate.setKeySerializer(stringRedisSerializer);
        redisTemplate.setHashKeySerializer(stringRedisSerializer);
        return redisTemplate;
    }

Wird in der Serviceklasse verwendet

@Autowired
private RedisTemplate<String, BaseCurrentUser> currentUserRedisTemplate;

Also muss ich jedes Mal, wenn ich einen Speichertyp hinzufüge, einen Satz @Bean hinzufügen??? Oder ich weiß nicht, wie ich es verwenden soll? Verwenden Sie nur das StringRedisTemplate und verwenden Sie fastjson bei jeder Serialisierung manuell

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

Antworte allen(1)
我想大声告诉你

在.xml中配置redis(包括集群、序列化),在类中注入RedisTemplate,使用异步回调的方式操作redis(或者直接操作)

RedisTemplate

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage