package com.qianwen.core.redis.config; import com.qianwen.core.jwt.config.JwtRedisConfiguration; import com.qianwen.core.redis.cache.BladeRedis; import com.qianwen.core.redis.serializer.RedisKeySerializer; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.ValueOperations; import org.springframework.data.redis.serializer.RedisSerializer; @AutoConfigureBefore({JwtRedisConfiguration.class, RedisAutoConfiguration.class}) @EnableConfigurationProperties({BladeRedisProperties.class}) @Configuration(proxyBeanMethods = false) @EnableCaching /* loaded from: blade-starter-redis-9.3.0.0-SNAPSHOT.jar:org/springblade/core/redis/config/RedisTemplateConfiguration.class */ public class RedisTemplateConfiguration implements BladeRedisSerializerConfigAble { @Override // org.springblade.core.redis.config.BladeRedisSerializerConfigAble @ConditionalOnMissingBean({RedisSerializer.class}) @Bean public RedisSerializer redisSerializer(BladeRedisProperties properties) { return defaultRedisSerializer(properties); } @ConditionalOnMissingBean(name = {"redisTemplate"}) @Bean(name = {"redisTemplate"}) public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory, RedisSerializer redisSerializer) { RedisTemplate redisTemplate = new RedisTemplate<>(); RedisKeySerializer keySerializer = new RedisKeySerializer(); redisTemplate.setKeySerializer(keySerializer); redisTemplate.setHashKeySerializer(keySerializer); redisTemplate.setValueSerializer(redisSerializer); redisTemplate.setHashValueSerializer(redisSerializer); redisTemplate.setConnectionFactory(redisConnectionFactory); return redisTemplate; } @ConditionalOnMissingBean({ValueOperations.class}) @Bean public ValueOperations valueOperations(RedisTemplate redisTemplate) { return redisTemplate.opsForValue(); } @Bean public BladeRedis bladeRedis(RedisTemplate redisTemplate) { return new BladeRedis(redisTemplate); } }