2017-03-18 108 views
1

我想知道是否有一個示例如何爲Spring Cloud Config創建自定義EnvironmentRepository,因爲有git,svn,vault存儲庫,但我不想使用它們,我需要我的自定義一。例如,如果我只想將所有屬性存儲在Map中。Spring Cloud Config定製環境存儲庫

回答

3

在您的應用程序上下文中提供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,跳馬,原生......),你想也想實現Ordered接口指定定單。

一個好方法是查找現有的EnvironmentRepository實現,如Spring雲配置服務器包中的VaultEnvironmentRepository

+1

我還創建了一個帶有ZooKeeper EnvironmentRepository的小型Maven庫,用作Spring Cloud Config Server的即插即用依賴項。見github.com/felixoldenburg/JonesEnvironmentRepository –

+1

我想在這裏類似的東西 - 但不工作。請參閱https://stackoverflow.com/questions/48762915/custom-spring-config-environmentrepository-not-being-picked-up –

相關問題