我来自 spring 背景,我们在项目中使用依赖注入(inject)
。现在我在 Play-Framework
上,选择 Scala 进行开发。对于 Scala,我想使用依赖注入(inject),并且我发现有很多依赖注入(inject)框架可用于 Scala。 Spring还提供对Scala依赖注入(inject)框架的支持。但我只需要IOC容器,所以不需要使用spring。在 Play-Framework 文档中,他们使用 Google-Guice 进行依赖注入(inject)框架。但我发现 SCALDI
也是一个很好的 Scala 依赖注入(inject)框架。
我仍然困惑哪些依赖注入(inject)
框架适合Scala
和Play-Framework
。还有编译时类型的安全框架可用。请建议我选择哪个依赖注入(inject)
框架?
最佳答案
我肯定会建议scaldi ,但我也是它的创建者,所以我的观点很可能有点偏见:D
但说实话,很难根据您的描述提出建议。我认为这取决于您正在从事的项目以及与您合作的团队。另外,您是否准备好放弃一些灵活性以支持静态类型(在这种情况下,蛋糕模式或 MacWire 将是一个不错的选择)。由于您有 Spring 背景,我想您应该熟悉 scaldi 引入的概念。
您还需要记住,Play 的下一版本 (2.4.0) 将支持开箱即用的 DI。 Google Guice 将是默认实现(因为他们需要一些同时支持 Scala 和 Java 的库),但他们保持其相当开放,因此其他人很容易提供替代方案。我已经有一段时间致力于为新的 Play DI 机制提供 scaldi 支持,因此理想情况下,它将在 Play 2.4.0 发布时提供,以提供一流的 Scaldi - Play 2.4.0 集成。
但总的来说,我建议您尝试几个库,看看您最喜欢(感觉更舒服)哪个(我建议使用 scaldi、MacWire 和 cake pattern)。
最近在 scaldi 邮件列表中提出了类似的问题。也许您也会发现我的回答很有帮助:
关于scala - Play和Scala的依赖注入(inject)框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29575773/