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<Object> redisSerializer(BladeRedisProperties properties) {
|
return defaultRedisSerializer(properties);
|
}
|
|
@ConditionalOnMissingBean(name = {"redisTemplate"})
|
@Bean(name = {"redisTemplate"})
|
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory, RedisSerializer<Object> redisSerializer) {
|
RedisTemplate<String, Object> 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<String, Object> redisTemplate) {
|
return new BladeRedis(redisTemplate);
|
}
|
}
|