Play 2.5.Xでは、依存関係注入を使用する必要があります。次のコードは遊びのドキュメントからの例です:プレイ中のDependency Injectedクラスのインスタンスを作成する2.5.X
class HomeController @Inject() (configuration: play.api.Configuration) extends Controller {
def index = Action {
Ok(views.html.index("Your new application is ready."))
}
}
私はHomeController
にいくつかの追加のヘルパーメソッドgetXXX
を定義し、どこか別の場所からアクセスする必要がある場合は、どのように私は、このメソッドにアクセスすることができますか?
私が本当に興味を持っているのは、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
誰かが説明してください、どうすればこの問題を解決できますか?
このヘルパーメソッドとは何ですか?コントローラーがそれを保管するのに最適な場所だと確信していますか? – michaJlS
あなたの質問はあまり明確ではありません。コントローラーを注射可能コンポーネントとして宣言する方法を尋ねていますか? – Nio
ユニットテスト用ですか?この場合、@ Injectアノテーションを付けたコントローラをマークした後、https://www.playframework.com/documentation/2.5.x/ScalaTestingWithGuice –