Как добавить модуль в Play! Фреймворк 2.4

Я пытаюсь разделить некоторую логику приложения на модули. Я создал модуль, который должен обрабатывать пользователей (профиль просмотра и т. д. (модели + контроллеры))

Я добавил модуль в reference.conf

play.modules.enabled += "modules.users"

Но когда я пытаюсь получить доступ к приложению:

Module [modules.users] cannot be instantiated.

Является ли создание Пользовательский загрузчик единственным вариантом?


person PsychoX    schedule 25.08.2015    source источник


Ответы (1)


Этот синтаксис работает только с внедрением зависимостей во время выполнения: конфигурация считывается во время выполнения и загружаются необходимые модули.

«Имя» модуля должно ссылаться на Guice Module, где вы определяете ваши пользовательские привязки.

Один полный пример:

conf/application.conf

play.modules.enabled += "auth.di.AuthModule"

modules/auth/app/di/AuthModule.scala

package auth.di

class AuthModule extends AbstractModule {

   def configure() = {
       // Binds your services here
   }
}

build.sbt

lazy val root = (project in file("."))
  .enablePlugins(PlayScala)
  .dependsOn(moduleAuth).aggregate(moduleAuth)

lazy val moduleAuth = (project in file("modules/auth"))
   .enablePlugins(PlayScala)

Советы. Используйте scala-guice, чтобы более свободно определять свои модули.

person Julien Lafont    schedule 25.08.2015