Использование Guice в качестве библиотеки внедрения зависимостей в приложении ZIO
Мы работаем над переносом нашего Play! заявление в ЗИО. В качестве первого шага мы проверяем, можем ли мы использовать Google Guice в качестве библиотеки внедрения зависимостей в ZIO, чтобы изменения были минимальными. Это упоминается здесь, но я не нашел в Интернете ресурса, который подробно описывал бы шаги с каким-либо примером.
Любое руководство/ссылка будет высоко оценено.
1 ответ
Вы можете использовать Guice так же, как и раньше. В конечном итоге вы получите интерфейсы, которые будут возвращать эффекты ZIO вместо Futures.
Проблема в том, что если вы планируете использовать ZIO HTTP и другие связанные библиотеки ZIO, вы обнаружите, что они раскрывают свою функциональность через ZLayers (например, HTTP-сервер ZIO), поэтому вам придется манипулировать как слоями, так и модулями Guice. Я настоятельно рекомендую сформулировать ZLayers из существующих модулей Guice перед переходом на ZIO HTTP.
Я рекомендую заглянуть на https://www.youtube.com/watch?v=9fr4pWIG-Tw от DevInsideYou для вдохновения — он демонстрирует, как заставить ZIO работать с Play, что является хорошим промежуточным шагом.