Всем привет, столкнулся с такой проблемкой: во время старта приложения необходимо разруливать огромное количество зависимостей между главными компонентами системы. При этом часть из них нужно иметь возможность конфигурировать именно в момент запуска, а не на этапе сборки задавать параметры.
По
ссылке набросал примерную структуру компонентов, часть из них опциональные, часть взаимозаменяемые. Ссылки через yaml-овские алиасы не делал, что бы сохранить структуру с минимальным количество уровней. "%...%" - это ссылка на другой компонент.
Собственно требуется некий DI контейнер, который бы смог разруливать зависимости в lazy-load режиме, при этом не вкомпилироваться по жесткому в бинарь, а запрашивать свои настройки динамически.
Вот этот
golangit/dic уже тыкал, с приватными свойствами так и не завелся + требует жесткую сбилдженную систему зависимостей. Безусловно, можно добавить парсилку того же ямла (viper например) и делать это динамически, но тогда уже легче руками написать все эти вызовы.
Безсловно, подобная штука обязана иметь некий регистр конструкторов.
Подытожим, сталкивались ли вы с подобными задачами, как решали? Есть ли что-то готовое?