Изучение
Жизненный цикл и teardown
Запрет новых разрешений во время закрытия и освобождение объектов в обратном порядке зависимостей.
v0.1.0-dev.1Продвинутый уровеньark_di
Жизненный цикл и teardown
При закрытии контейнер переходит в состояние closing, запрещает новые внешние разрешения, ожидает активные resolution lease, строит план по зафиксированным зависимостям и вызывает disposer в обратном порядке.
Если Service зависит от Repository, а Repository — от Client, порядок будет следующим:
text
Service → Repository → Client
Контейнер пытается выполнить весь план. Несколько ошибок объединяются в DiCloseException, поэтому один сбой не отменяет независимую очистку. Повторный close() возвращает тот же Future.
При цикле DiCircularDependencyException содержит путь зависимостей, сформировавший цикл.