scala - Play和Scala的依赖注入(inject)框架?

标签 scala dependency-injection playframework scaldi

我来自 spring 背景,我们在项目中使用依赖注入(inject)。现在我在 Play-Framework 上,选择 Scala 进行开发。对于 Scala,我想使用依赖注入(inject),并且我发现有很多依赖注入(inject)框架可用于 Scala。 Spring还提供对Scala依赖注入(inject)框架的支持。但我只需要IOC容器,所以不需要使用spring。在 Play-Framework 文档中,他们使用 Google-Guice 进行依赖注入(inject)框架。但我发现 SCALDI 也是一个很好的 Scala 依赖注入(inject)框架。

我仍然困惑哪些依赖注入(inject)框架适合ScalaPlay-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 邮件列表中提出了类似的问题。也许您也会发现我的回答很有帮助:

https://groups.google.com/forum/#!topic/scaldi/TYU36h7kGqk

关于scala - Play和Scala的依赖注入(inject)框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29575773/

相关文章:

c# - 尝试激活登录 Controller 时无法解析 IdentityUserManager 类型的服务

javascript - 将 Play Framework 和 Twirl 模板与 Webpack 和 React 集成

java - Play Framework : Mixing Java and Scala controller/views

c# - 如何测试事件触发

scala - 如何用trait来描述算子?

c# - 如何在 ASP.NET Core 中使用支持依赖注入(inject)的自定义模型联编程序?

playframework - 将 Jena 添加到 Play Framework 2.0

java - Play Framework : package play. db.jpa 未找到

Scala:为什么模式匹配中允许重复声明?

scala - 不连贯的scala库版本