Spring Radis 的配置,bean 是如何连接的?

Spring configuration for Radis, how the beans get wired?

下面的示例来自 Spring 入门指南,容器 bean 如何获取 connectionFactory? Spring Boot 是否提供自己的 connectionFactory?

Getting Started Messaging with Spring Redis

有 5 个豆子:

  1. 闩锁
  2. 接收者
  3. 监听适配器
  4. 模板
  5. 容器

首先创建闩锁。然后是接收器,因为接收器构造函数需要 latch.Then listenerAdapter,因为它需要 receiver.Both 模板,容器需要 connectionFactory。 在代码中,我没有找到任何名称为 connectionFactory 并用 @Bean 注释的方法。

@SpringBootApplication
    public class Application {
        @Bean
        RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory,
                MessageListenerAdapter listenerAdapter) {

            RedisMessageListenerContainer container = new RedisMessageListenerContainer();
            container.setConnectionFactory(connectionFactory);
            container.addMessageListener(listenerAdapter, new PatternTopic("chat"));

            return container;
        }

        @Bean
        MessageListenerAdapter listenerAdapter(Receiver receiver) {
            return new MessageListenerAdapter(receiver, "receiveMessage");
        }

        @Bean
        Receiver receiver(CountDownLatch latch) {
            return new Receiver(latch);
        }

        @Bean
        CountDownLatch latch() {
            return new CountDownLatch(1);
        }

        @Bean
        StringRedisTemplate template(RedisConnectionFactory connectionFactory) {
            return new StringRedisTemplate(connectionFactory);
        }
}

它在你的项目的类路径中,这就是 spring boot 所做的