public static interface HttpClients.OverrideSettings
覆盖配置(接口)
示例: 使用Apollo配置中心动态调整配置
@Configurationpublic class HttpClientsApolloConfig { private HttpClients httpClients; //构造注入HttpClients@Autowiredpublic HttpClientsApolloConfig(HttpClients httpClients) { this.httpClients = httpClients; } //获取Apollo配置, 注意要指定正确的namespace@ApolloConfig("application")private Config config; //监听Apollo配置变化, 注意要指定正确的namespace@ApolloConfigChangeListener("application")private void onApolloConfigChanged(ConfigChangeEvent configChangeEvent){ httpClients.settingsOverride(new ApolloOverrideSettings(config)); } //将Apollo的配置包装为OverrideSettings private static class ApolloOverrideSettings implements HttpClients.OverrideSettings { private Config config; private ApolloOverrideSettings(Config config) { this.config = config; }@Overridepublic SetgetKeys() { return config.getPropertyNames(); } @Overridepublic String getValue(String key) { return config.getProperty(key, null); } } }
java.util.Set<java.lang.String> getKeys()
返回需要调整的配置清单, 格式如下:
slate.httpclients.tag.propname
其中, tag为HttpClient的标识, propname为配置名称.
例如: slate.httpclients.default.hosts 表示调整default客户端的后端列表, 若不存在default客户端, 则会创建一个新的
java.lang.String getValue(java.lang.String key)
根据key返回配置的新值
key - 对应getKeys方法返回的值