У меня есть класс Апи с Dependency Injection, с функцией, которые используют этот инъекции:Play 2,5 SCALA класс импорта с Dependency Injection
class Api @Inject()(userRepo: UserRepo) extends Controller {
def user(email: String) ={
userRepo.getUser(email).map(....)
}
}
и объект FlashSession в том же пакете - Я используя его во многих других файлах. Я хочу использовать функцию пользователь в мой объект FlashSession.
object FlashSession {
def test = ... Api.user("[email protected]") ....
}
Но я не могу импортировать Api класса, потому что это класс, а не объект, и я не могу поставить эту функцию в объект Компаньона, поскольку он нуждается в DI.
Что такое лучший способ справиться с этим?
Благодарим за помощь!
Спасибо, но эффективно, это не совсем то, что я хотел, потому что я использую класс Api в качестве контроллера. Но я могу адаптировать ваш ответ и что-то сделать с ним. Что вы подразумеваете под «не использовать глобальные объекты-компаньоны с DI»? Это означает, что ваше решение не очень хорошо, не так ли? – Lauriane
Да, использование конструктора DI требует некоторой адаптации в коде. Вам просто нужно скорее передать необходимые классы через конструктор, а затем использовать объекты Global. @ bruce-lowe ниже показывает хорошее понимание этого подхода. – liosedhel