Skip to content
Discussion options

You must be logged in to vote

结论:目前 DefaultConfigFactory 里多数默认可见性方法不是遗漏,而是没有被作为稳定的子类扩展 API 暴露出来。

现在对外比较明确的扩展契约是 ConfigFactory 接口本身:实现 create(...)createConfigFile(...),再通过 Apollo 的 injector/customizer 机制替换或提供自定义 ConfigFactoryDefaultConfigFactory 这层主要是默认实现,里面的 repository 选择逻辑会同时受 namespace 后缀、properties-compatible format、本地文件缓存、K8s ConfigMap 缓存、remote repository 等内部策略影响,例如 create(...) 会在 createConfigRepository(...)createPropertiesCompatibleFileConfigRepository(...) 之间选择。

目前已经开放的继承 hook 是 protected createRepositoryConfig(...)apollo-client-config-data 里的 PureApolloConfigFactory 就是这样复用默认 repository 组装逻辑,只替换最终创建出来的 Config 类型。也就是说,当前支持的是“复用默认 repository 流程,但替换最终 Config 实现”这一类扩展。

如果目标是定制 repository 创建、namespace format…

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@yfwz100
Comment options

Answer selected by yfwz100
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants