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