目前我正在使用PCF提供的Redis。我正在使用spring-data-redis
中的JedisConnectionFactory
连接到它,并提供所需的配置,如下所示:
@Configuration
public class RedisConfig {
@Bean
public JedisConnectionFactory jedisConnectionFactory() {
final JedisConnectionFactory jedisConFactory = new JedisConnectionFactory();
jedisConFactory.setHostName("pivotal-redis-host");
jedisConFactory.setPort(1234);
jedisConFactory.setPassword("mySecretPassword");
return jedisConFactory;
}
}
spring-cloud-config
提供了可用于配置各种连接的类AbstractCloudConfig
。有什么明显的好处必须使用它而不是JedisConnectionFactory
吗?看起来需要提供的配置较少,但还有其他原因吗?
public class RedisCloudConfig extends AbstractCloudConfig {
@Bean
public RedisConnectionFactory redisConnection() {
return connectionFactory().redisConnectionFactory();
}
}
提前谢谢。
Spring CloudConnector 的主要区别在于,它从绑定到 Cloud Foundry 上的应用程序的 Redis 服务中读取服务信息。 然后,它会根据动态绑定的信息自动配置 Redis 连接。
使用JedisConnectionFactory
以及 @avhi 解决方案的示例是将配置信息直接放入源代码或应用程序配置文件中。 在这种情况下,如果服务发生更改,则需要重新配置应用并再次运行cf push
。
使用 Spring 云连接器,您可以通过 CF 简单地解绑和绑定新的 Redis 服务并运行cf restart
来更改服务。
在我看来,即使你也不需要专门定义@Bean
配置。
您可以通过简单地提供application.yml
或application.properties
Redis
服务器详细信息来简单地使用自动配置。
spring:
redis:
host: pivotal-redis-host
port: 1234
password: mySecretPassword