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 个豆子:
- 闩锁
- 接收者
- 监听适配器
- 模板
- 容器
首先创建闩锁。然后是接收器,因为接收器构造函数需要 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 所做的
下面的示例来自 Spring 入门指南,容器 bean 如何获取 connectionFactory? Spring Boot 是否提供自己的 connectionFactory?
Getting Started Messaging with Spring Redis
有 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 所做的