Создать экземпляр класса Dependency Injected в игре 2.5.X

В Play 2.5.X нам нужно использовать инъекцию зависимостей. Следующий пример - пример игровой документации:

class HomeController @Inject() (configuration: play.api.Configuration) extends Controller {
  def index = Action {
    Ok(views.html.index("Your new application is ready."))
  }
}

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

Мне действительно интересно, как создать экземпляр, HomeControllerчтобы я мог использовать homeControllerInstance.getXXX.

Если я попытаюсь создать экземпляр, например:

val homeControllerInstance = new HomeController()

Я получаю ошибку:

Compilation error[not enough arguments for constructor HomeController: (configuration: play.api.Configuration)HomeController

Я попытался изменить HomeControllerобъявление класса:

class HomeController @Inject(configuration: play.api.Configuration) extends Controller

Но это дало мне ошибку:

classfile annotation arguments have to be supplied as named arguments

Может кто-нибудь объяснить, как я могу это исправить?

scala,playframework,playframework-2.0,

0

Ответов: 3


0

Если вы хотите использовать свой getXXXметод своего класса HomeControllerиз Xyzкласса, используя сок google, попробуйте это

import com.google.inject.Inject

class Xyz @Inject()(homeCon: HomeController) {
   homeCon.getXXX
}

Хотя я не уверен, какова ваша фактическая проблема, но надеюсь, что это поможет.


0

Вы должны создать экземпляр класса с помощью

play.api.Play.current.injector.instanceOf(classOf[UID])

0

Иногда вам нужно поместить новую строку после ключевого слова @Inject, чтобы это:

class HomeController @Inject(a :IWantThisInjected) (configuration: play.api.Configuration)

не удается с этой ошибкой, но перемещение первого набора параметров на следующую строку может исправить:

class HomeController @Inject (a :IWantThisInjected) (configuration: play.api.Configuration)

Скала, playframework, playframework-2,0,
Похожие вопросы