问题标签 [macwire]

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 回答
948 浏览

mysql - 注入数据库连接池

我已经开始使用 MacWire 对我的 Play 应用程序进行依赖注入,但在尝试注入数据库连接时遇到了问题。

在使用 DI 之前,我的代码如下所示:

这在使用 DI 后不再起作用。我得到以下异常:java.lang.InstantiationException: play.api.db.DBApi.

我的应用程序加载器:

应用程序的主要组件:

和存储库模块:

如何获取和使用数据库连接池并将其注入以便可以在存储库中使用?

0 投票
1 回答
1014 浏览

scala - 如何使用 macwire 注入特征

我有 Scala 特质

我想用 MacWire 将它注入到服务中

然后在测试或课程中使用它

但我在服务类中遇到编译错误

找不到 accounts.repository.UserRepository 的公共构造函数或伴随对象

0 投票
2 回答
214 浏览

scala - 如何在 playframework 2.4 中运行 httpFilters

我正在尝试使用 macwire DI 在 Playframework 2.4 上构建应用程序,但 Play 中的 httpFilters 有问题!这是我正在尝试做的一个例子

DI模块

加载器类

application.conf 的一部分是

和 ExampleFilter 不起作用。我收到没有“示例”标题的响应

0 投票
2 回答
304 浏览

scala - 使用扩展控制器播放 2.4 macwire 示例似乎无法模拟

我采用了现有的 macwire 示例并像 CoffeeController.scala 一样扩展了控制器

控制器模块.scala

但是,当我运行测试时,我得到了一个堆栈跟踪:

我可以尝试运行(FakeApplication()){...},但后来我得到路由注入器错误。目前该代码在 build.sbt 中使用 routesGenerator := InjectedRoutesGenerator,但我认为它不会转化为测试阶段。

我已经把代码放在这里了 https://github.com/tashiscool/Play24MacwireMockingFailure

如果您运行激活器测试,您应该会在控制器测试中看到错误。

0 投票
3 回答
166 浏览

scala - DI 或服务定位器:在 scala 中在运行时注入实现(无静态绑定)

我有一个用例,我想提供一个简单的 API 来扩展我的 scala 应用程序的功能。

在过去的几天里,我一直在尝试找到一个 java/scala DI 框架或库来为我执行以下操作:

  1. 标识类路径上的接口/特征的实现
  2. 在标记的站点上实例化并注入所述实现(重要特征:所有这些),最好带有注释
  3. 以上不能在编译器中发生,因为我需要一个插件架构,在 JVM 启动之前不引入插件
  4. 因此上述可能发生在 JVM 启动时(不需要热交换)

我越来越倾向于 OSGi DS,我是它的忠实粉丝,但由于 #4,我认为它是一种矫枉过正。

我查看了 guice、weld、scaladi 和 macwire,但无法立即找到执行此操作的简单方法。我的目标是让“插件”作者不必以任何方式了解我的注入/IoC 解决方案,除了偶尔的注释(最好是 JSR330)在注入站点我愿意处理更丑陋的事情。:-)

我是否必须在这里推出自己的解决方案,使用 OSGi,还是我在上述库中遗漏了一些微不足道的东西?

ps:我试图避开 OSGi 主要是因为它与我正在使用的应用程序框架交互(akka - 不确定捆绑/DS 生命周期与单个参与者系统混合得很好)

0 投票
2 回答
716 浏览

scala - 如何使用 MacWire(播放框架)将依赖项注入服务

我有一个服务类,并且该服务有一个方法getSomethingFromApi,现在,我想要播放配置实例,以便我可以从 application.conf 中提取内容,以及播放 WSClient,以便我可以执行 http 调用。

这就是我希望我的服务看起来的样子:

这是连接我的服务的 ServicesModule:

我现在的问题是使用接线播放配置和 WSClient 实例的正确方法是什么..?因为目前我在我的服务中需要这些实例,但我没有它们,我应该如何以正确的方式做到这一点?谢谢

0 投票
1 回答
985 浏览

java - 无法使用 Macwire 连接播放依赖项

我有一个 api 服务类,它依赖于 play 的 Configuration 和 WSClient 实例。

而且我不想使用 @Inject() 注释,因为我想在 Macwire 上使用编译时注入,所以我所做的是:

但我得到一个编译器错误:

错误:找不到类型的值:[com.typesafe.config.Config]
lazy val conf:Configuration = wire[Configuration]

错误:找不到公共构造函数或 [play.api.libs.ws.WSClient] 的伴随对象lazy val wsc:WSClient = wire[WSClient]

有人知道我该如何解决这个问题...?为什么会这样:/

谢谢!

0 投票
2 回答
1171 浏览

scala - 如何设置播放框架 ApplicationLoader 和 Macwire 以使用自定义路由?

我以这种方式设置应用程序加载器:

但我的路线是自定义的,所以它看起来像:

routes文件:

和我的v1.Routes文件:

所以现在当我编译项目时,我得到了这个错误:

错误:找不到类型的值:[v1.Routes] 线 [Routes]

所以我不知道如何解决这个问题,有人知道我怎样才能让加载器使用这种路由结构吗?

0 投票
1 回答
125 浏览

scala - 使用 MacWire 特征将 playFramework 依赖项注入到 scala 对象失败

假设我的项目中有一堆汽车对象,例如:

我正在扩展 Car 这只是设置汽车结构的一个特征:

现在,在start()方法中,我想使用一些 api 服务,它会根据它的 id 给我一个车钥匙,所以我不能启动汽车。

所以我有这个CarApiService

我希望能够getCarkey()在我的汽车对象中使用,所以我创建了一个 CarsApiServicesModule,它可以让我访问carApiService并且我可以使用它的方法:

现在我想以这种方式在我的汽车对象中添加混合这个特性:

但是当编译这个我得到这个错误:

在此处输入图像描述

有谁知道是什么问题?

还有,这样的设计有意义吗?

0 投票
1 回答
869 浏览

scala - MacWire:找到多个类型的值

我正在使用 MacWire DI 框架,但出现此错误。

我的应用程序加载器是这样的:

在对代码进行少量修改后,我遇到了一些其他类似的错误。如何遵循 DI 依赖项来追踪这些错误?