From 866233bd2fe3fd263eac04ecf74be8f21fe6d07d Mon Sep 17 00:00:00 2001 From: Qiang Lee <18018968632@163.com> Date: Fri, 19 Apr 2019 14:58:26 +0800 Subject: [PATCH] Auto-configure ReactiveStringRedisTemplate if necessary See gh-16604 --- .../data/redis/RedisReactiveAutoConfiguration.java | 9 +++++++++ .../data/redis/RedisReactiveAutoConfigurationTests.java | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisReactiveAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisReactiveAutoConfiguration.java index 54a5a0af3e3..6be5d1a2e05 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisReactiveAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisReactiveAutoConfiguration.java @@ -28,6 +28,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.core.io.ResourceLoader; import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory; import org.springframework.data.redis.core.ReactiveRedisTemplate; +import org.springframework.data.redis.core.ReactiveStringRedisTemplate; import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializationContext; @@ -60,4 +61,12 @@ public class RedisReactiveAutoConfiguration { serializationContext); } + @Bean + @ConditionalOnMissingBean(name = "reactiveStringRedisTemplate") + @ConditionalOnBean(ReactiveRedisConnectionFactory.class) + public ReactiveStringRedisTemplate reactiveStringRedisTemplate( + ReactiveRedisConnectionFactory reactiveRedisConnectionFactory) { + return new ReactiveStringRedisTemplate(reactiveRedisConnectionFactory); + } + } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisReactiveAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisReactiveAutoConfigurationTests.java index fcb81460e0c..5f626aea1fe 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisReactiveAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/data/redis/RedisReactiveAutoConfigurationTests.java @@ -41,7 +41,8 @@ public class RedisReactiveAutoConfigurationTests { public void testDefaultRedisConfiguration() { this.contextRunner.run((context) -> { Map beans = context.getBeansOfType(ReactiveRedisTemplate.class); - assertThat(beans).containsOnlyKeys("reactiveRedisTemplate"); + assertThat(beans).containsOnlyKeys("reactiveRedisTemplate", + "reactiveStringRedisTemplate"); }); }