Как использовать конфигурацию Apache Commons для нашего иерархически организованного файла конфигурации?

Я должен оценить, как использовать конфигурацию Apache Commons для нашей структуры конфигурации.

Я только нахожу, как обрабатывать иерархическое структурирование для конфигураций, которые поступают из 1 файла. Но как я могу обрабатывать иерархические структуры, как показано на двух экранах.

У меня есть множество файлов конфигурации, хранящихся во все большем количестве подкаталогов. Вы можете увидеть свернутый пример в структуре папок на экране структуры папок.

структура папок

Каждый подкаталог содержит файлы одного и того же типа конфигурации, а каждый файл содержит иерархически организованную информацию.

Количество типов конфигурации увеличится в ближайшем будущем и может увеличиться в длинном зале еще больше

В данный момент каталог будет содержать около 100 файлов. Каждый файл представляет информацию для одного клиента.

Наличие конфигурации, представленной в файлах, структурированных файловой системой, выбрано по целому ряду причин, и их объяснение здесь далеко отошло бы от темы.

Экран иерархической структуры конфигурации

  • root означает корневой каталог
  • провайдер и клиент - это подкаталоги корневого каталога
  • elkconfiguration - это конфигурация, хранящаяся в корневом каталоге
  • Следующим уровнем являются такие файлы, как, например, швейцарский или customerB
  • следующие уровни настраиваются в файлах

Чтобы иметь конфигурацию в файлах и использовать файловую систему, чтобы структурировать их в виде дерева, достаточно веских причин. Объяснить эти причины пошло бы не по теме. Что еще не установлено, так это общая конфигурация Apache. Если есть открытый исходный код, который лучше отвечает нашим потребностям, чем я буду рад услышать ваш совет.

1 ответ

То, что вы просите, - это индивидуальный способ объединения конфигураций.

Посмотрите на комбинированную конфигурацию и CombinedConfigurationBuilder

Ты должен быть способен:

XMLConfiguration rootFolder = new XMLConfiguration();
XMLConfiguration providerFolder = new XMLConfiguration();
CombinedConfiguration config = new CombinedConfiguration(new OverrideCombiner());
config.addConfiguration(providerFolder); // provider overrides the root
config.addConfiguration(rootFolder);

Этот порядок может определяться конфигурацией и определением, которое вы предоставите своему менеджеру конфигурации.

Другие вопросы по тегам