diff --git a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/redis/RedisAutoConfiguration.java b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/redis/RedisAutoConfiguration.java index 0f4252acb0b..9b626d310ea 100644 --- a/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/redis/RedisAutoConfiguration.java +++ b/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/redis/RedisAutoConfiguration.java @@ -42,6 +42,7 @@ import redis.clients.jedis.JedisPoolConfig; * * @author Dave Syer * @author Andy Wilkinson + * @author Christian Dupuis */ @Configuration @ConditionalOnClass({ JedisConnection.class, RedisOperations.class, Jedis.class }) @@ -79,12 +80,13 @@ public class RedisAutoConfiguration { @Bean @ConditionalOnMissingBean RedisConnectionFactory redisConnectionFactory() throws UnknownHostException { - if (this.properties.getPool() != null) { - JedisConnectionFactory factory = new JedisConnectionFactory( - jedisPoolConfig()); - return factory; + JedisConnectionFactory factory = null; + if (this.properties.getPool() == null) { + factory = new JedisConnectionFactory(); + } + else { + factory = new JedisConnectionFactory(jedisPoolConfig()); } - JedisConnectionFactory factory = new JedisConnectionFactory(); factory.setHostName(this.properties.getHost()); factory.setPort(this.properties.getPort()); if (this.properties.getPassword() != null) { diff --git a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/redis/RedisAutoConfigurationTests.java b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/redis/RedisAutoConfigurationTests.java index b842c7ac443..101a00f0852 100644 --- a/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/redis/RedisAutoConfigurationTests.java +++ b/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/redis/RedisAutoConfigurationTests.java @@ -29,6 +29,7 @@ import static org.junit.Assert.assertNotNull; /** * @author Dave Syer + * @author Christian Dupuis */ public class RedisAutoConfigurationTests { @@ -55,4 +56,18 @@ public class RedisAutoConfigurationTests { .getHostName()); } + @Test + public void testRedisConfigurationWithPool() throws Exception { + this.context = new AnnotationConfigApplicationContext(); + EnvironmentTestUtils.addEnvironment(this.context, "spring.redis.host:foo"); + EnvironmentTestUtils.addEnvironment(this.context, "spring.redis.pool.max-idle:1"); + this.context.register(RedisAutoConfiguration.class, + PropertyPlaceholderAutoConfiguration.class); + this.context.refresh(); + assertEquals("foo", this.context.getBean(JedisConnectionFactory.class) + .getHostName()); + assertEquals(1, this.context.getBean(JedisConnectionFactory.class) + .getPoolConfig().getMaxIdle()); + } + }