Spring Cloud Config自定义环境存储库

idm*_*iev 3 spring spring-cloud-config

我想知道是否有一个示例如何为Spring Cloud Config创建自定义EnvironmentRepository,原因是存在git,svn,Vault库,但是我不想使用它们,我需要我的自定义库。例如,如果我只想在地图中存储所有属性。

小智 5

在您的应用程序上下文中以bean的形式提供EnvironmentRepository的实现。然后,Spring Cloud配置服务器将自动将其拾取。这是一个简单的示例:

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

  • 确保配置文件处于活动状态:SPRING_PROFILES-ACTIVE=git,keyvault (2认同)