在 Spring 配置服务器中添加环境存储库

Adding environment repository in Spring Config Server

我是 Spring Boot 的新手,所以如果我忽略了一些简单的事情,请原谅。

使用 Spring 配置服务器,您可以通过 .yml 文件指定您要使用的环境存储库类型(本机、Git 等)。这些环境存储库包含在第三方依赖项中。我想知道是否可以添加您自己的环境存储库,以便您可以连接到数据库以获取配置?

非常感谢!

当然可以。参见 spring cloud consul config as an example. The guts is a PropertySource

public class MyPropertySource extends EnumerablePropertySource<MyClient> {
  @Override
  public Object getProperty(String name) {
    return /* your impl */;
  }

  @Override
  public String[] getPropertyNames() {
    return /* your impl here */;
  }
}

您还需要一个指向 bootstrap 配置的 PropertySourceLocator, a bootstrap configuration and a META-INF/spring.factories

正如 spencergibb 在另一个 中所述,PropertySource 只为配置服务器本身提供配置, spring 引导配置客户端无法访问.

您实际需要的是 EnvironmentRepository 接口的实现。 我在

中提供了一个简单的 CustomEnvironmentRepository 示例