覆盖Spring Boot的RedisProperties中的前缀

时间:2017-12-26 09:51:18

标签: java spring spring-boot spring-data spring-data-redis

我正在尝试在我的应用中使用多个Redis实例。最后,我开始在application.properties中指定不同的带前缀的Redis属性,并在OneRedisConfigTwoRedisConfig类中包含许多必填字段:

application.properties

one.redis.host=localhost
one.redis.port=6379

two.redis.host=localhost
two.redis.port=6380

OneRedisConfig.java

@Configuration
@ConfigurationProperties( prefix = "one.redis" )
public class OneRedisConfig {
  private String host;
  private int port;

  // getters and setters
}

问题是我必须在OneRedisConfig类中指定 all 所需的配置属性,这是org.springframework.boot.autoconfigure.data.redis.RedisProperties类中已有的重复项。例如,如果我还需要配置池设置,则必须将静态类Pool放入OneRedisConfig,其中包含maxIdleminIdle等字段。 是否可以避免这种重复,并允许在我的application.properties中使用相应的前缀指定任何其他配置属性,以便我的自定义配置类自动获取它? 我认为应该可以简单地覆盖:OneRedisConfig extends RedisProperties,但这在启动时给了我一个错误:

  

构造函数的参数0   org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration $ RedisConnectionConfiguration   需要一个bean,但发现了2个:      - oneRedisConfig:在文件[/my/package/config/OneRedisConfig.class]中定义      - spring.redis-org.springframework.boot.autoconfigure.data.redis.RedisProperties:   以null定义

0 个答案:

没有答案