0
我有一個控制器:是否有可能與guice一起使用scala自我類型?
class HomeController @Inject() (cc: ControllerComponents) extends AbstractController(cc)with Logging
{
this: SecuredActionByToken =>
def index = CheckedToken{ ...
凡SecuredActionByToken
trait
使用類名CheckTokenService
,以驗證用戶可以運行「索引」(我們正試圖從一種蛋糕圖案轉移到吉斯)。
是否可以將CheckTokenService
注入SecuredActionByToken
?當然,我可以將它注入HomeController
本身並以某種方式工作,但當我不直接使用它們時,我並不想將某些服務推送給控制器。
你可以混合構造函數注入和方法注入當使用Guice時,儘管如果您正在創建模擬或手動創建控制器實例,這會使編寫測試變得更加困難。所以你的'SecuredActionByToken'需要有一個'@Inject def setCheckTokenService(cts:CheckTokenService)',它將在實例化控制器後被調用。看一個例子[這裏](https://github.com/playframework/playframework/blob/fe0fae19579f5d2e86860adcd2b73f15b20bbec2/framework/src/play/src/main/scala/play/api/mvc/Controller.scala#L170-L198)。 – marcospereira