diff --git a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfiguration.java b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfiguration.java index e4e156742fc..389f07abdce 100644 --- a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfiguration.java +++ b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfiguration.java @@ -21,6 +21,7 @@ import java.net.URL; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; @@ -42,7 +43,6 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.event.ContextRefreshedEvent; import org.springframework.context.event.EventListener; import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.session.ExpiringSession; import org.springframework.util.StringUtils; /** @@ -169,7 +169,7 @@ public class LocalDevToolsAutoConfiguration { @Bean public RestartCompatibleRedisSerializerConfigurer restartCompatibleRedisSerializerConfigurer( - RedisTemplate sessionRedisTemplate) { + @Qualifier("sessionRedisTemplate") RedisTemplate sessionRedisTemplate) { return new RestartCompatibleRedisSerializerConfigurer( sessionRedisTemplate); } diff --git a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/RestartCompatibleRedisSerializerConfigurer.java b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/RestartCompatibleRedisSerializerConfigurer.java index c45172f7b16..a93e5e795d2 100644 --- a/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/RestartCompatibleRedisSerializerConfigurer.java +++ b/spring-boot-devtools/src/main/java/org/springframework/boot/devtools/autoconfigure/RestartCompatibleRedisSerializerConfigurer.java @@ -26,7 +26,6 @@ import org.springframework.core.serializer.support.SerializingConverter; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.data.redis.serializer.SerializationException; -import org.springframework.session.ExpiringSession; import org.springframework.util.ObjectUtils; /** @@ -42,12 +41,11 @@ import org.springframework.util.ObjectUtils; */ class RestartCompatibleRedisSerializerConfigurer implements BeanClassLoaderAware { - private final RedisTemplate redisTemplate; + private final RedisTemplate redisTemplate; private volatile ClassLoader classLoader; - RestartCompatibleRedisSerializerConfigurer( - RedisTemplate redisTemplate) { + RestartCompatibleRedisSerializerConfigurer(RedisTemplate redisTemplate) { this.redisTemplate = redisTemplate; } diff --git a/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfigurationTests.java b/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfigurationTests.java index f3b5a1ee8bf..c9472c6ec7d 100755 --- a/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfigurationTests.java +++ b/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfigurationTests.java @@ -241,13 +241,27 @@ public class LocalDevToolsAutoConfigurationTests { } @Test - public void sessionRedisTemplateIsConfiguredWithCustomDeserializers() + public void sessionRedisTemplateIsConfiguredWithCustomDeserializers10() throws Exception { - SpringApplication application = new SpringApplication( - SessionRedisTemplateConfig.class, LocalDevToolsAutoConfiguration.class); + sessionRedisTemplateIsConfiguredWithCustomDeserializers( + SessionRedisTemplateConfig10.class); + } + + @Test + public void sessionRedisTemplateIsConfiguredWithCustomDeserializers11() + throws Exception { + sessionRedisTemplateIsConfiguredWithCustomDeserializers( + SessionRedisTemplateConfig11.class); + } + + private void sessionRedisTemplateIsConfiguredWithCustomDeserializers( + Object sessionConfig) throws Exception { + SpringApplication application = new SpringApplication(sessionConfig, + LocalDevToolsAutoConfiguration.class); application.setWebEnvironment(false); this.context = application.run(); - RedisTemplate redisTemplate = this.context.getBean(RedisTemplate.class); + RedisTemplate redisTemplate = this.context.getBean("sessionRedisTemplate", + RedisTemplate.class); assertThat(redisTemplate.getHashKeySerializer(), is(instanceOf(RestartCompatibleRedisSerializer.class))); assertThat(redisTemplate.getHashValueSerializer(), @@ -306,7 +320,7 @@ public class LocalDevToolsAutoConfigurationTests { } @Configuration - public static class SessionRedisTemplateConfig { + public static class SessionRedisTemplateConfig10 { @Bean public RedisTemplate sessionRedisTemplate() { @@ -314,7 +328,16 @@ public class LocalDevToolsAutoConfigurationTests { redisTemplate.setConnectionFactory(mock(RedisConnectionFactory.class)); return redisTemplate; } - } + @Configuration + public static class SessionRedisTemplateConfig11 { + + @Bean + public RedisTemplate sessionRedisTemplate() { + RedisTemplate redisTemplate = new RedisTemplate(); + redisTemplate.setConnectionFactory(mock(RedisConnectionFactory.class)); + return redisTemplate; + } + } }