我正在尝试在我的应用中使用多个Redis实例。最后,我开始在application.properties
中指定不同的带前缀的Redis属性,并在OneRedisConfig
和TwoRedisConfig
类中包含许多必填字段:
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
,其中包含maxIdle
,minIdle
等字段。
是否可以避免这种重复,并允许在我的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定义