То есть при деплое сетят в переменные окружения целевой системы, а в коде есть какой-то самописный класс экстрактор?
Большинство библиотек для конфигурации (либо же реализаций поиска и применения конфигурации в фреймворках) поддерживают множественные конфигурации с приоритетами из коробки
То есть, например, дефолт в проперти-файле, переписывается более специфичным файлом (например, профилем), тот может быть переписан переменной окружения с именованием, соответствующим определенной конвенции