Доступ к проводным экземплярам в модулях, определенных как классы - PullRequest
0 голосов
/ 18 сентября 2018

Я новичок в Scala и Macwire и пытаюсь выяснить, как получить доступ к экземплярам, ​​которые подключены с помощью модулей, организованных как классы.Если модули определены как признаки, можно расширить их и получить доступ к проводным экземплярам в них, как показано ниже:

trait UserModule {
  lazy val userFinder: UserFinder = wire[UserFinder]
}

class UserFinderSpec extends FlatSpec with UserModule {
 assert userFinder.find(...) should ...
}

Если мои модули организованы как классы со композицией, как мне получить доступ к экземплярам?

class UserFinder(databaseConnection: databaseConnection) {
}

@Module
class DatabaseConnectionModule {
   lazy val databaseConnection: DatabaseConnection = ...
}

@Module
class UserModule(databaseConnectionModule: DatabaseConnectionModule) {
    lazy val userFinder:UserFinder = wire[UserFinder]
}
class UserFinderSpec extends FlatSpec {
    //How to access UserFinder here?
    //val wired = wiredInModule(new UserModule(new DatabaseConnectionModule))
    //val userFinder = wired.lookup(classOf[UserFinder]
    //Above way to access the instances seems complicated 
    //as I need to instantiate the modules with it's dependency chain which can be very long in my use-case.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...