Конфигурация Spring для Radis, как связаны компоненты?

В следующем примере из Руководства по началу работы Spring, как контейнерный компонент получает connectionFactory? Предоставляет ли Spring Boot объект connectionFactory самостоятельно?

Начало работы с сообщениями в Spring Redis

Всего 5 бобов:

  1. защелка
  2. получатель
  3. listenerAdapter
  4. шаблон
  5. контейнер

защелка создается первой. Затем получатель, потому что конструктору получателя нужна защелка. Затем listenerAdapter, потому что ему нужен получатель. И шаблону, и контейнеру требуется 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);
        }
}

person Subhendu Mahanta    schedule 15.04.2017    source источник


Ответы (1)


Это в пути к классам вашего проекта, это то, что делает весенняя загрузка

person Alexander.Furer    schedule 15.04.2017