2017-02-01 2 views
2

Я не мог найти много информации об инъекции зависимостей времени исполнения Play от инъекции зависимости времени компиляции в Scala. Время компиляции DI выглядит более привлекательно, но Play, похоже, поощряет противоположное. Кроме того, количество кода шаблона, требуемого в сочетании с отсутствием документации, обескураживает.Слушать недостатки DI во время выполнения

Вопрос в том, какие именно недостатки использования среды выполнения DI в игре? Не все ли компоненты, подключенные непосредственно при загрузке приложения, что делает сбои быстро обнаруженными?

+1

Два раздела на веб-сайте достаточно подробные - https://playframework.com/documentation/2.5.x/ScalaDependencyInjection и https://playframework.com/documentation/2.5.x/ScalaCompileTimeDependencyInjection –

ответ

1

Основное отличие в моем сознании состоит в том, что сбои в проводке обнаруживаются во время выполнения в сравнении с временем компиляции в соответствующих решениях. Поэтому, если вы забудете связать некоторый интерфейс с реализацией, используя DI во время выполнения, вы обнаружите (потенциально) при развертывании приложения. Вы сохранили эту потенциальную головную боль с помощью DI DI с компиляцией за счет многословия.

Я бы порекомендовал взглянуть на macwire, который является хорошим проектом на основе макросов для компиляции DI, который устраняет некоторые проблемы, связанные с шаблоном.

Существует пример игры с проектом macwire на github.

+0

Время выполнения при воспроизведении запускается или может быть позже, только когда запрашивается компонент? – nmat

Смежные вопросы