Репозиторий пользовательской среды Spring Cloud Config

Мне интересно, есть ли пример того, как создать собственный репозиторий среды для Spring Cloud Config, потому что есть репозитории git, svn, vault, но я не хочу их использовать, мне нужен свой собственный. Например, если я просто хочу сохранить все свойства на карте.


person idmitriev    schedule 18.03.2017    source источник


Ответы (1)


Предоставьте реализацию EnvironmentRepository в виде bean-компонента в контексте вашего приложения. Затем сервер конфигурации 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;
    }
}

Обратите внимание, что если у вас есть несколько EnvironmentRepository (Git, Vault, Native...), вы также захотите реализовать интерфейс Ordered для указания порядка.

Хорошим подходом является поиск существующей реализации EnvironmentRepository, такой как VaultEnvironmentRepository из пакета Spring Cloud Config Server.

person Felix Oldenburg    schedule 13.09.2017
comment
Я также создал небольшую библиотеку maven с ZooKeeper EnvironmentRepository, которую можно использовать в качестве подключаемой зависимости для Spring Cloud Config Server. См. github.com/felixoldenburg/JonesEnvironmentRepository. - person Felix Oldenburg; 17.09.2017
comment
Я пытаюсь что-то подобное здесь - но не работает. См. stackoverflow.com /вопросы/48762915/ - person Vinay B; 13.02.2018
comment
Я использовал пользовательский репозиторий среды, но сервер конфигурации больше не загружает собственные свойства среды или git, загружаются только пользовательские свойства среды. Я хочу загрузить пользовательский + нативный/git. Любые идеи, пожалуйста - person Komoo; 05.04.2019
comment
Убедитесь, что профили активны: SPRING_PROFILES-ACTIVE=git,keyvault - person Daniel Hilgarth; 04.07.2020