Не выбирает свойства для Redis из файла свойств - PullRequest
0 голосов
/ 20 мая 2019

Я настроил Redis в своем весеннем загрузочном приложении и добавил некоторые свойства для этого в файл application.properties.но он принимает свойства по умолчанию (localhost: 6379)

здесь есть config

@Configuration
@EnableRedisRepositories("com.demo.redis.repository")
public class RedisDataSourceConfig {


    @Bean
    public JedisConnectionFactory jedisConnectionFactory() {
        log.debug("Create Jedis Connection Factory");
        return new JedisConnectionFactory();
    }


    @Bean
    public RedisTemplate<String, Object> redisTemplate() {
        RedisTemplate<String, Object> template = new RedisTemplate<>();
        template.setConnectionFactory(jedisConnectionFactory());
        template.setKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(new JdkSerializationRedisSerializer());
        template.setHashKeySerializer(template.getKeySerializer());
        template.setHashValueSerializer(template.getValueSerializer());
        return template;
    }


    @Bean
    public RedisTemplate<String, Object> jsonRedisTemplate() {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setConnectionFactory(jedisConnectionFactory());
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
        redisTemplate.setHashKeySerializer(redisTemplate.getKeySerializer());
        redisTemplate.setHashValueSerializer(redisTemplate.getValueSerializer());
        return redisTemplate;
    }
}

вот мои свойства в файле свойств

spring.cache.type=redis
spring.redis.host=192.168.10.226
spring.redis.port=6379
spring.cache.redis.time-to-live=600000

Ответы [ 2 ]

0 голосов
/ 11 июля 2019

Добавьте аннотацию PropertySource с вашей конфигурацией

@Configuration
@EnableRedisRepositories("com.demo.redis.repository")
@PropertySource("classpath:application.properties")
public class RedisDataSourceConfig {


@Bean
public JedisConnectionFactory jedisConnectionFactory() {
    log.debug("Create Jedis Connection Factory");
    return new JedisConnectionFactory();
}


@Bean
public RedisTemplate<String, Object> redisTemplate() {
    RedisTemplate<String, Object> template = new RedisTemplate<>();
    template.setConnectionFactory(jedisConnectionFactory());
    template.setKeySerializer(new StringRedisSerializer());
    template.setValueSerializer(new JdkSerializationRedisSerializer());
    template.setHashKeySerializer(template.getKeySerializer());
    template.setHashValueSerializer(template.getValueSerializer());
    return template;
}


@Bean
public RedisTemplate<String, Object> jsonRedisTemplate() {
    RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
    redisTemplate.setConnectionFactory(jedisConnectionFactory());
    redisTemplate.setKeySerializer(new StringRedisSerializer());
    redisTemplate.setValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class));
    redisTemplate.setHashKeySerializer(redisTemplate.getKeySerializer());
    redisTemplate.setHashValueSerializer(redisTemplate.getValueSerializer());
    return redisTemplate;
}

}

0 голосов
/ 20 мая 2019

Я использовал RedisStandaloneConfiguration для установки свойств.сейчас работает нормально

@Bean
    JedisConnectionFactory jedisConnectionFactory() {

        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
        redisStandaloneConfiguration.setHostName("localhost");
        redisStandaloneConfiguration.setPort(6379);
        redisStandaloneConfiguration.setDatabase(0);
        redisStandaloneConfiguration.setPassword(RedisPassword.of("password"));

        JedisClientConfigurationBuilder jedisClientConfiguration = JedisClientConfiguration.builder();
        jedisClientConfiguration.connectTimeout(Duration.ofSeconds(60));// 60s connection timeout

        JedisConnectionFactory jedisConFactory = new JedisConnectionFactory(redisStandaloneConfiguration,
                jedisClientConfiguration.build());

        return jedisConFactory;
    }
...