须要用到的组件:

    <dependency>      <groupId>org.springframework.boot</groupId>      <artifactId>spring-boot-starter-data-redis-reactive</artifactId>      <version>2.6.2</version>    </dependency>

yml配置:

spring:    redis:        host: 127.0.0.1        port: 6379

这外面有两个主动加载的bean须要关注:
翻看代码:LettuceConnectionConfiguration.java,

    @Bean    @ConditionalOnMissingBean(RedisConnectionFactory.class)    LettuceConnectionFactory redisConnectionFactory(            ObjectProvider<LettuceClientConfigurationBuilderCustomizer> builderCustomizers,            ClientResources clientResources) {        LettuceClientConfiguration clientConfig = getLettuceClientConfiguration(builderCustomizers, clientResources,                getProperties().getLettuce().getPool());        return createLettuceConnectionFactory(clientConfig);    }

因为在上述代码中有参数须要,@ConditionalOnMissingBean(RedisConnectionFactory.class)作用便产生了。

再看RedisReactiveAutoConfiguration.java

    @Bean    @ConditionalOnMissingBean(name = "reactiveRedisTemplate")    @ConditionalOnBean(ReactiveRedisConnectionFactory.class)    public ReactiveRedisTemplate<Object, Object> reactiveRedisTemplate(            ReactiveRedisConnectionFactory reactiveRedisConnectionFactory, ResourceLoader resourceLoader) {        JdkSerializationRedisSerializer jdkSerializer = new JdkSerializationRedisSerializer(                resourceLoader.getClassLoader());        RedisSerializationContext<Object, Object> serializationContext = RedisSerializationContext                .newSerializationContext().key(jdkSerializer).value(jdkSerializer).hashKey(jdkSerializer)                .hashValue(jdkSerializer).build();        return new ReactiveRedisTemplate<>(reactiveRedisConnectionFactory, serializationContext);    }

所以呢 ,应用的时候, 能够间接应用

    @Autowired    ReactiveStringRedisTemplate abc;    @GetMapping("/redis")    public Mono<Boolean> redis() {        ReactiveValueOperations<String, String>  ops = abc.opsForValue();        return ops.set("test", "black");    }

或者还有一种形式:

    @Bean    ReactiveStringRedisTemplate reactiveRedisTemplate(ReactiveRedisConnectionFactory factory) {        return new ReactiveStringRedisTemplate(factory);    }
    @Autowired    ReactiveStringRedisTemplate reactiveRedisTemplate;

留神这里变量名字最好是reactiveRedisTemplate,不然就会报错

Field abc in xxx required a single bean, but 2 were found:        - reactiveRedisTemplate: defined by method 'reactiveRedisTemplate' in com.example.WebfluxApplication        - reactiveStringRedisTemplate: defined by method 'reactiveStringRedisTemplate' in class path resource [org/springframework/boot/autoconfigure/data/redis/RedisReactiveAutoConfiguration.class]