redisTemplate.afterPropertiesSet();方法的作用是什么
时间: 2023-06-01 10:03:44 浏览: 209
redisTemplate.afterPropertiesSet()方法是一个初始化方法,它的作用是在配置属性被设置之后调用,确保RedisTemplate实例的正确性。具体来说,它会初始化RedisTemplate的connectionFactory属性,即创建一个连接到Redis服务器的连接工厂。在调用RedisTemplate的操作方法之前,必须先调用afterPropertiesSet()方法确保RedisTemplate的正确配置和初始化。
相关问题
redisTemplate.afterPropertiesSet();
这段代码是用于在配置好 RedisTemplate 对象后,调用该方法来初始化 RedisTemplate 的配置,使其能够被正确地使用。通常可以在 Spring 配置文件中配置 RedisTemplate 的相关属性,然后通过调用该方法来使其生效。具体来说,该方法会根据配置的属性来创建 RedisConnectionFactory 和 RedisSerializer,并将它们注入到 RedisTemplate 中。在调用 RedisTemplate 的方法时,就可以使用配置好的 RedisConnectionFactory 来创建 RedisConnection,并使用配置好的 RedisSerializer 来序列化和反序列化 Redis 中的数据。
@Bean public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { // 配置redisTemplate RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); // 设置序列化 Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance, ObjectMapper.DefaultTyping.NON_FINAL, JsonTypeInfo.As.PROPERTY); jackson2JsonRedisSerializer.setObjectMapper(om); // key序列化 redisTemplate.setKeySerializer(new StringRedisSerializer()); // value序列化 redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); // Hash key序列化 redisTemplate.setHashKeySerializer(new StringRedisSerializer()); // Hash value序列化 redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); redisTemplate.afterPropertiesSet(); return redisTemplate; }
这段代码是用来配置RedisTemplate的,可以看出该RedisTemplate的key和hashKey序列化采用了StringRedisSerializer,而value和hashValue序列化采用了Jackson2JsonRedisSerializer。其中,Jackson2JsonRedisSerializer使用了ObjectMapper来实现Java对象和JSON字符串之间的相互转换。在配置ObjectMapper时,设置了默认可见性为所有属性可见,以及默认的对象类型为非final类型,并且将类型信息作为属性写入JSON字符串中。这些配置可以使得Redis中存储的数据更加直观、易读,并且可以支持更多类型的Java对象。返回的RedisTemplate可以用来进行Redis操作,比如存储、查询等。
阅读全文