這不是一個阻塞問題,但我想了解如何更好地處理控制器注入。依賴注入控制器@
在Play document about Routing in 2.4,據說:
播放支持產生兩個類型的路由器,一個是一個依賴注入路由器,另一種是靜態路由器。默認值是靜態路由,但是,如果您使用的播放種子激活模板的新的Play應用程序,你的項目將包括在build.sbt以下配置告訴它使用的注射路由器:
routesGenerator:= InjectedRoutesGenerator
Play的文檔中的代碼示例假定您正在使用注入的路由生成器。如果你沒有使用它,你可以簡單地調整靜態路由生成器的代碼樣本,可以通過在@符號前加上路由器的控制器調用部分,或者將每個控制器聲明爲對象而不是類。
所以,我的理解,在build.sbt
routesGenerator := InjectedRoutesGenerator
,如果我用控制器調用@
前綴,它是一樣的製作控制器作爲一個單身object
。這違背了我已經宣佈我的控制器爲class
的事實,它有一些注入(使用@Inject
),並且我用@
作爲我的所有控制器調用的前綴,以便IntelliJ不報告錯誤。
那麼,@
真的做我的控制器調用?
截至目前我所擁有的是我的控制器作爲類,注入組件。我也在build.sbt中啓用了InjectedRoutesGenerator。在我的路由文件中,我有'@'前綴。當我打破它時,這仍然是行得通的。所以我想知道我目前的設置,如果我的控制器注入。 – Khanetor
什麼是刪除'@'?我認爲他們被InjectedRoutesGenerators忽略。而且很容易知道你的控制器是否被注入,只是嘗試用一個路由來呼叫它們。如果有效,它們會被注入。 –
你是什麼意思「你刪除了@?」 – Khanetor