我知道play提供了Global#getControllerInstance来支持控制器类的guice DI。
但这种方式似乎只适用于Controller类,现在我想将我的一些服务类注入其他类(不是类扩展Controller)。我怎么能这样做?
我谷歌很多,但还是找不到解决方案......
答案 0 :(得分:2)
一旦你设置了模块(the blog post linked above is helpful),就可以像往常一样使用直接注入或构造函数注入,与Play!无关。构造函数注入示例:
class SomeClass @Inject() (dependencyA: DependencyA, userRepo: UserRepo) {
// then, use `dependencyA` and `userRepo`
}
然后,从控制器内部,只注入一个SomeClass
的实例。
请参阅scala-guice以获取更好的Scala for API API。