All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.ocoop.redis.SpringDataRedisConfig Maven / Gradle / Ivy

package cn.ocoop.redis;

import cn.ocoop.spring.App;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;

import java.util.Optional;

@Configuration
@DependsOn(value = "app")
public class SpringDataRedisConfig {
    private static final Logger log = LoggerFactory.getLogger(SpringDataRedisConfig.class);
    @Bean
    public JedisConnectionFactory jedisConnectionFactory() {
        RedisConfig redisConfig = getRedisConfig();
        JedisConnectionFactory jedisConnectionFactory = new JedisConnectionFactory();
        jedisConnectionFactory.setUsePool(true);
        jedisConnectionFactory.setHostName(redisConfig.getHost());
        jedisConnectionFactory.setPort(redisConfig.getPort());
        Optional.ofNullable(redisConfig.getPassword()).ifPresent(jedisConnectionFactory::setPassword);
        Optional.ofNullable(redisConfig.getTimeout()).ifPresent(jedisConnectionFactory::setTimeout);
        return jedisConnectionFactory;
    }

    private RedisConfig getRedisConfig() {
        RedisConfig redisConfig = null;
        try {
            redisConfig = App.getBean(RedisConfigService.class).getRedisConfig();
        } catch (NoSuchBeanDefinitionException e) {
            log.warn("RedisConfigService未配置");
        }
        if (redisConfig == null) redisConfig = new RedisConfig("127.0.0.1", 6379, null, null);
        return redisConfig;
    }

    @Bean
    public RedisTemplate redisTemplate() {
        RedisTemplate redisTemplate = new RedisTemplate();
        redisTemplate.setConnectionFactory(jedisConnectionFactory());
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        return redisTemplate;
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy