Spring Cloud Config自定义环境存储库

时间:2017-03-18 08:16:21

标签: spring spring-cloud-config

我想知道如何为Spring Cloud Config创建自定义EnvironmentRepository,因为有git,svn,vault存储库,但我不想使用它们,我需要我的自定义存储库。例如,如果我只想将所有属性存储在Map中。

1 个答案:

答案 0 :(得分:4)

在您的应用程序上下文中将EnvironmentRepository的实现提供为bean。 Spring云配置服务器然后会自动提取它。 这是一个简约的例子:

public class CustomEnvironmentRepository implements 
EnvironmentRepository
{
    @Override
    public Environment findOne(String application, String profile, String label)
    {
        Environment environment = new Environment(application, profile);

        final Map<String, String> properties = loadYouProperties();
        environment.add(new PropertySource("mapPropertySource", properties));
        return environment;
    }
}

请注意,如果您有多个EnvironmentRepository(Git,Vault,Native ...),您还需要实现Ordered接口来指定订单。

一个好的方法是从Spring云配置服务器包中查找现有的EnvironmentRepository实现,如VaultEnvironmentRepository