问题标签 [subcut]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
391 浏览

scala - SubCut BindingModule 组成

使用 SubCut 我可以定义一个 BindingModule 并使用modifyBindings来获取一个新的,它可以覆盖一些绑定并添加新的绑定。是否有一个实用程序而不是说

我可以改为做类似的事情

原因是我正在编写一个带有“可插入” jar 的应用程序 - 每个这样的 jar 都将有一个META-INF/bindings.properties文件,该文件将公开其BindingModule的类名。我的主要入口 jar 将通过反射实例化这些BindingModules,然后将它们组合起来。

这个想法是,如果可插入的 jar 遵循提供META-INF/bindings.properties的约定,那么部署应用程序就不需要新的配置。

0 投票
1 回答
654 浏览

scala - 如何集成子切依赖模块?

根据可用的文档,这项任务似乎很简单,但是我已经为此苦苦挣扎了几天,仍然无法使其适用于简单的模块间依赖...

这是一个简化的示例:

尝试构建 BlaImpl 实例时,运行此代码失败并出现以下错误:

调试显示传递给 BlaImpl 构造函数的绑定模块在其绑定中不包含 'bla String,并且 Program.bindingModule.bindings 具有所有绑定(包括所需的字符串)。

我见过其他类似的问题,但它只指组合而不是跨越模块边界的依赖项。

我究竟做错了什么?

0 投票
1 回答
134 浏览

scala - 不能在 SubCut 中使用 modifyBindings

modifyBindings 是否会按承诺工作,该测试应该通过:

关于我错过了什么的任何想法?

0 投票
1 回答
2117 浏览

scala - 比较 Subcut 和 Scaldi

我正在寻找在我的项目中使用的SubCutScaldi。他们各自的入门文档中提供的示例看起来非常相似。除了Getting Started和 scala 文档之外,这两个项目似乎都没有提供文档。

有人可以主要在功能和成熟度/稳定性方面总结这些框架之间的实际差异。我正在研究这些包,因为我需要能够在运行时动态创建和组合配置。运行时配置是我查看这些库而不是使用隐式和/或层蛋糕模式进行 DI/配置的主要原因,因此运行时配置工具对我来说是最重要的。此外,我不认为编译器插件对我来说是一个选项,但是这两个库都可以在没有各自插件的情况下使用,而冗长程度只会略有增加。我目前在 scala-2.9.2 上。

我也对直接在 Scala 中进行运行时 DI/配置的建议感兴趣,但是将我的整个项目转换为 monadic 样式也不是我的选择。

0 投票
1 回答
752 浏览

scala - 使用 Subcut 在 Play 应用程序中实例化 Akka Actor

我有一个 Play 2.1 应用程序。我还在使用 Subcut 进行依赖注入,它已经设置并适用于应用程序的大部分部分,除了一个。

假设我有以下与演员相关的代码片段:

现在,假设我想将一些对象注入到FoobarActorusing Subcut 的每个实例中。这将要求演员类扩展Injectable,并将其BindingModule传递给构造函数,如下所示:

问题是:这样的actor是如何实例化的?

通常,由 Subcut 管理的对象是在 Subcut 的配置对象(即扩展的对象NewBindingModule)中构造的,或者在 Play 的控制器的情况下,在Global对象中构造(参见github 上的 play-subcut)。

Akka.system.actorOf(Props[FoobarActor])为了覆盖演员的实例化以便传入绑定模块, 我会用什么替换?

0 投票
0 回答
111 浏览

scala - 我可以在喷涂路线测试中修改子切割模块吗?

我有一个 Specs2RouteTest

我确认在测试中设置了修改后的绑定。但是一旦它进入路线,我就会看到在测试模块中设置的绑定。通常,这种 modifyBindings{} 技术似乎可以使测试保持隔离,并且当我进行单元测试时,我可以交换依赖项没问题...但是在这些集成测试中,我似乎无法使被测路由拾取任何绑定修改。我在做一些明显错误的事情吗?

0 投票
1 回答
36 浏览

playframework-2.0 - 如何在模板中使用 subcut 定义的控制器路由

我的路由文件中有一个定义为 @com.xyx.abc(str: String) 的路由。

我想在模板中使用这条路线。我尝试使用

显然没有奏效。

提前致谢。

0 投票
1 回答
49 浏览

scala - 使用 Subcut 将字符串注入第三方库

我正在尝试将 Subcut 与我的依赖注入项目集成,并且遇到了将其与第三方库集成的问题。

该库需要加载我存储在 Play 配置中的文件的位置,并且我想使用 Subcut 注入该位置。以下是我当前定义的模块:

此代码编译但在运行时失败,说它找不到由 . 标识的位置字符串的绑定'location

另一件事我不明白为什么我可以做 idBy'location但这样做inject[T]('location)会导致编译失败?从代码来看,似乎idBy只是将符号转换为字符串,然后该inject方法只需要一个字符串。这只是 Subcut API 的缺陷还是我做错了什么?