Описание тега macwire
MacWire - это легкая и ненавязчивая библиотека для внедрения зависимостей Scala.
MacWire генерирует новый код создания экземпляра заданных классов, используя значения в включающем типе для параметров конструктора, с помощью макросов Scala.
Чтобы получить общее представление о DI в Scala, взгляните на Руководство по DI в Scala, в котором также есть MacWire.
MacWire помогает реализовать шаблон внедрения зависимостей (DI), устраняя необходимость писать код подключения классов вручную. Вместо этого достаточно объявить, какие классы следует связать и как следует обращаться к экземплярам (см. Области действия).
Классы, которые необходимо связать, должны быть организованы в "модули", которые могут быть характеристиками, классами или объектами Scala. Несколько модулей можно объединить с помощью наследования; значения из унаследованных модулей также используются для подключения.
MacWire во многих случаях может быть заменой контейнеров DI, предлагая больший контроль над тем, когда и как создаются экземпляры классов, безопасность типов и использование только языковых (Scala) механизмов.